]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: clean up the queue_cap_snap() code to remove unnecessary check 52499/head
authorXiubo Li <xiubli@redhat.com>
Mon, 8 May 2023 11:34:19 +0000 (19:34 +0800)
committerXiubo Li <xiubli@redhat.com>
Tue, 18 Jul 2023 02:28:13 +0000 (10:28 +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>
(cherry picked from commit cebb5a61c507e05fdd391ee1c569e5a3a0860c2a)

src/client/Client.cc

index 8c12b6505e4934034ebc929693c52bdb08e7550a..a62a72b0d29ef30bccdcd040e199ef200525a05d 100644 (file)
@@ -3991,15 +3991,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);