[PATCH] fix: release unused ceph cap reservation on readdir error
deepakroag <[email protected]> Wed, 15 Jul 2026 23:46:11 +0530
| Newsgroups | org.kernel.vger.ceph-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Return unused reserved caps to the MDS client pool when ceph_readdir_prepopulate() exits with an error. Corrected standalone submission: this patch was mistakenly sent earlier as [PATCH 4/4] in an unrelated multi-subsystem series. It is ceph-only and resubmitted here as [PATCH 1/1]. Link: https://lore.kernel.org/ceph-devel/[email protected]/ Signed-off-by: deepakroag <[email protected]> --- fs/ceph/inode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 61d7c0b81..2d6a80054 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c @@ -2188,6 +2188,8 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req, dput(dn); } out: + if (err) + ceph_unreserve_caps(req->r_mdsc, &req->r_caps_reservation); if (err == 0 && skipped == 0) { set_bit(CEPH_MDS_R_DID_PREPOPULATE, &req->r_req_flags); req->r_readdir_cache_idx = cache_ctl.index; -- Deepak Rao Gaikwad