ceph: add new MDS req field to hold delegated inode number
authorJeff Layton <jlayton@kernel.org>
Mon, 13 Jan 2020 18:04:08 +0000 (13:04 -0500)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 30 Mar 2020 10:42:42 +0000 (12:42 +0200)
Add new request field to hold the delegated inode number. Encode that
into the message when it's set.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/mds_client.c
fs/ceph/mds_client.h

index 1e738d6..a0ad9bd 100644 (file)
@@ -2477,7 +2477,7 @@ static struct ceph_msg *create_request_message(struct ceph_mds_client *mdsc,
        head->op = cpu_to_le32(req->r_op);
        head->caller_uid = cpu_to_le32(from_kuid(&init_user_ns, req->r_uid));
        head->caller_gid = cpu_to_le32(from_kgid(&init_user_ns, req->r_gid));
-       head->ino = 0;
+       head->ino = cpu_to_le64(req->r_deleg_ino);
        head->args = req->r_args;
 
        ceph_encode_filepath(&p, end, ino1, path1);
@@ -2638,7 +2638,6 @@ static int __prepare_send_request(struct ceph_mds_client *mdsc,
        rhead->flags = cpu_to_le32(flags);
        rhead->num_fwd = req->r_num_fwd;
        rhead->num_retry = req->r_attempts - 1;
-       rhead->ino = 0;
 
        dout(" r_parent = %p\n", req->r_parent);
        return 0;
index 4c3b717..4e5be79 100644 (file)
@@ -313,6 +313,7 @@ struct ceph_mds_request {
        int               r_num_fwd;    /* number of forward attempts */
        int               r_resend_mds; /* mds to resend to next, if any*/
        u32               r_sent_on_mseq; /* cap mseq request was sent at*/
+       u64               r_deleg_ino;
 
        struct list_head  r_wait;
        struct completion r_completion;