From: Sage Weil Date: Mon, 28 Jun 2010 18:34:29 +0000 (-0700) Subject: filejournal: fix journal write_pos advance X-Git-Tag: v0.21~305 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=50f254d0ce6c86a21140a4ce5a3ce08deb3d1d77;p=ceph.git filejournal: fix journal write_pos advance This was broken by bd4188a02abff9efffb87a0a2031efe51c1b4d9a. @pos needs to be advanced (it is pass by reference) or else we just overwrite the same bytes at the journal start over and over again. --- diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index 74c1b07105ce5..4f5cbcc93c4dd 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -425,6 +425,7 @@ int FileJournal::prepare_multi_write(bufferlist& bl, uint64_t& orig_ops, uint64_ } } + dout(20) << "prepare_multi_write queue_pos now " << queue_pos << dendl; //assert(write_pos + bl.length() == queue_pos); return 0; } @@ -511,6 +512,7 @@ void FileJournal::write_bl(off64_t& pos, bufferlist& bl) derr(0) << "write_bl failed with " << err << " " << strerror_r(-err, buf, sizeof(buf)) << dendl; } + pos += bl.length(); } void FileJournal::do_write(bufferlist& bl)