From 09d26448ea98a971f42adefa5bc2455717df919b Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Fri, 22 Jan 2016 17:55:21 +0800 Subject: [PATCH] BlueFS: add log after updating prefer_bdev field. Fixes: #14474 Signed-off-by: xie xingguo --- src/os/bluestore/BlueFS.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index dbee7c809ce..d10ee677ecc 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -1244,6 +1244,7 @@ int BlueFS::open_for_write( } FileRef file; + bool create = false; map::iterator q = dir->file_map.find(filename); if (q == dir->file_map.end()) { if (overwrite) { @@ -1258,8 +1259,7 @@ int BlueFS::open_for_write( file_map[ino_last] = file; dir->file_map[filename] = file; ++file->refs; - log_t.op_file_update(file->fnode); - log_t.op_dir_link(dirname, filename, file->fnode.ino); + create = true; } else { // overwrite existing file? file = q->second; @@ -1278,7 +1278,6 @@ int BlueFS::open_for_write( file->fnode.extents.clear(); } file->fnode.mtime = ceph_clock_now(NULL); - log_t.op_file_update(file->fnode); } if (dirname.length() > 5) { @@ -1299,6 +1298,10 @@ int BlueFS::open_for_write( } } + log_t.op_file_update(file->fnode); + if (create) + log_t.op_dir_link(dirname, filename, file->fnode.ino); + *h = new FileWriter(file, bdev.size()); dout(10) << __func__ << " h " << *h << " on " << file->fnode << dendl; return 0; -- 2.39.5