We should queue a cap release anyway if there are dirty caps/snapcaps
for the inodes when trimming caps.
Fixes: https://tracker.ceph.com/issues/62979
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit
d14752ff1f56da93ad0d9c94fcf101945fdacadd)
// is deleted inside remove_cap
++p;
+ if (in->dirty_caps || in->cap_snaps.size())
+ cap_delay_requeue(in.get());
+
if (in->caps.size() > 1 && cap != in->auth_cap) {
int mine = cap->issued | cap->implemented;
int oissued = in->auth_cap ? in->auth_cap->issued : 0;
}
if (all && in->ino != CEPH_INO_ROOT) {
ldout(cct, 20) << __func__ << " counting as trimmed: " << *in << dendl;
- trimmed++;
+ if (!in->dirty_caps && !in->cap_snaps.size())
+ trimmed++;
}
}
}