]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: clean up the queue_cap_snap() code to remove unnecessary check 51383/head
authorXiubo Li <xiubli@redhat.com>
Mon, 8 May 2023 11:34:19 +0000 (19:34 +0800)
committerXiubo Li <xiubli@redhat.com>
Mon, 22 May 2023 09:38:48 +0000 (17:38 +0800)
If the 'dirty' is true then 'dirty & CEPH_CAP_ANY_WR' will always be
true.

Fixes: https://tracker.ceph.com/issues/59343
Signed-off-by: Xiubo Li <xiubli@redhat.com>
src/client/Client.cc

index b0400f9d9120ecec33ed20c4ca44d244dd64d41d..6d4d641c212d1cc98e8295494b915405e1087c43 100644 (file)
@@ -4053,15 +4053,13 @@ void Client::queue_cap_snap(Inode *in, SnapContext& old_snapc)
       in->cap_snaps.rbegin()->second.writing) {
     ldout(cct, 10) << __func__ << " already have pending cap_snap on " << *in << dendl;
     return;
-  } else if (in->caps_dirty() ||
-            (used & CEPH_CAP_FILE_WR) ||
-            (dirty & CEPH_CAP_ANY_WR)) {
+  } else if (dirty || (used & CEPH_CAP_FILE_WR)) {
     const auto &capsnapem = in->cap_snaps.emplace(std::piecewise_construct, std::make_tuple(old_snapc.seq), std::make_tuple(in));
     ceph_assert(capsnapem.second); /* element inserted */
     CapSnap &capsnap = capsnapem.first->second;
     capsnap.context = old_snapc;
     capsnap.issued = in->caps_issued();
-    capsnap.dirty = in->caps_dirty();
+    capsnap.dirty = dirty;
 
     capsnap.dirty_data = (used & CEPH_CAP_FILE_BUFFER);