From 50f254d0ce6c86a21140a4ce5a3ce08deb3d1d77 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 28 Jun 2010 11:34:29 -0700 Subject: [PATCH] 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. --- src/os/FileJournal.cc | 2 ++ 1 file changed, 2 insertions(+) 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) -- 2.39.5