From: Samuel Just Date: Fri, 30 Mar 2012 16:59:24 +0000 (-0700) Subject: FileJournal: check pwrite return value when zeroing journal X-Git-Tag: v0.45~37 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b25817a58d7d6ba33deb3f8a0a9645dbf0e517df;p=ceph.git FileJournal: check pwrite return value when zeroing journal Signed-off-by: Samuel Just --- diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index 1140794693e9..530e1647ddf0 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -340,10 +340,16 @@ int FileJournal::_open_file(int64_t oldsize, blksize_t blksize, char *buf = new char[write_size]; memset(static_cast(buf), 0, write_size); uint64_t i = 0; - for (; (i + write_size) <= (unsigned)max_size; i += write_size) - ::pwrite(fd, static_cast(buf), write_size, i); - if (i < (unsigned)max_size) - ::pwrite(fd, static_cast(buf), max_size - i, i); + for (; (i + write_size) <= (unsigned)max_size; i += write_size) { + ret = ::pwrite(fd, static_cast(buf), write_size, i); + if (ret < 0) + return -errno; + } + if (i < (unsigned)max_size) { + ret = ::pwrite(fd, static_cast(buf), max_size - i, i); + if (ret < 0) + return -errno; + } delete [] buf; }