From 1d671986bcf2f50d23964c3dca7f51c62eb34914 Mon Sep 17 00:00:00 2001 From: Xiubo Li Date: Mon, 8 May 2023 19:34:19 +0800 Subject: [PATCH] client: clean up the queue_cap_snap() code to remove unnecessary check 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 (cherry picked from commit cebb5a61c507e05fdd391ee1c569e5a3a0860c2a) --- src/client/Client.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 8c12b6505e493..a62a72b0d29ef 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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); -- 2.39.5