From: Sage Weil Date: Mon, 3 May 2010 03:50:58 +0000 (-0700) Subject: filejournal: return error instead of asserting X-Git-Tag: v0.20.1~21 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fac9512f0f4e2900a14b48997598a65e0f79f0d6;p=ceph.git filejournal: return error instead of asserting --- diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index c69463ada43..ad66036915c 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -53,7 +53,8 @@ int FileJournal::_open(bool forwrite, bool create) // get size struct stat st; int r = ::fstat(fd, &st); - assert(r == 0); + if (r < 0) + return -errno; max_size = st.st_size; block_size = st.st_blksize; @@ -71,17 +72,17 @@ int FileJournal::_open(bool forwrite, bool create) // ioctl block device uint64_t bytes; r = ::ioctl(fd, BLKGETSIZE64, &bytes); - assert(r == 0); max_size = bytes; #else # ifdef BLKGETSIZE // hrm, try the 32 bit ioctl? unsigned long sectors = 0; r = ioctl(fd, BLKGETSIZE, §ors); - assert(r == 0); max_size = sectors * 512ULL; # endif #endif + if (r < 0) + return -errno; is_bdev = true; } @@ -145,7 +146,8 @@ int FileJournal::create() dout(2) << "create " << fn << dendl; int err = _open(true, true); - if (err < 0) return err; + if (err < 0) + return err; // write empty header memset(&header, 0, sizeof(header)); @@ -183,7 +185,8 @@ int FileJournal::open(__u64 next_seq) dout(2) << "open " << fn << " next_seq " << next_seq << dendl; int err = _open(false); - if (err < 0) return err; + if (err < 0) + return err; // assume writeable, unless... read_pos = 0;