]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
ceph: voluntarily drop Fx cap for readdir request
authorYan, Zheng <zyan@redhat.com>
Thu, 23 Nov 2017 10:28:16 +0000 (18:28 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 29 Jan 2018 17:36:05 +0000 (18:36 +0100)
MDS need to rdlock directory inode's filelock when handling readdir
request. Voluntarily dropping CEPH_CAP_AUTH_EXCL avoids a cap revoke
message.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/dir.c

index aa2618f12cb7ab489bc2bc9ee836157235a80c2e..9fde02cd5568d88854025b4be84c69baef2c57fa 100644 (file)
@@ -381,6 +381,7 @@ more:
                if (op == CEPH_MDS_OP_READDIR) {
                        req->r_direct_hash = ceph_frag_value(frag);
                        __set_bit(CEPH_MDS_R_DIRECT_IS_HASH, &req->r_req_flags);
+                       req->r_inode_drop = CEPH_CAP_FILE_EXCL;
                }
                if (fi->last_name) {
                        req->r_path2 = kstrdup(fi->last_name, GFP_KERNEL);