]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
libcephsqlite: fix unconditional success bug in CheckReservedLock 50036/head
authormark15213 <shuaiw2@andrew.cmu.edu>
Wed, 4 Aug 2021 13:02:32 +0000 (21:02 +0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 8 Feb 2023 15:09:36 +0000 (10:09 -0500)
we don't want to set result to zero at the end.
Otherwise, the if above would be useless and the function cannot be used to check the reserved lock.

Fixes: https://tracker.ceph.com/issues/52001
Signed-off-by: Shuai Wang <shuaiw2@andrew.cmu.edu>
(cherry picked from commit e8162b1e2a048b5007db3653ff1299ea49e458f2)

src/libcephsqlite.cc

index a6e8a48833a8dcef7636069c902a48f2d8f10ad8..39a61a91948098a7bf023217febad20dbfaffaac 100644 (file)
@@ -254,6 +254,7 @@ static int CheckReservedLock(sqlite3_file *file, int *result)
   auto f = (cephsqlite_file*)file;
   auto start = ceph::coarse_mono_clock::now();
   df(5) << dendl;
+  *result = 0;
 
   auto& lock = f->lock;
   if (lock > SQLITE_LOCK_SHARED) {
@@ -264,7 +265,6 @@ static int CheckReservedLock(sqlite3_file *file, int *result)
   f->io.rs->print_lockers(*_dout);
   *_dout << dendl;
 
-  *result = 0;
   auto end = ceph::coarse_mono_clock::now();
   getdata(f->vfs).logger->tinc(P_OPF_CHECKRESERVEDLOCK, end-start);
   return SQLITE_OK;