On Wed, Jan 15, 2020 at 9:59 PM Jeff Layton <jlayton@xxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> > --- > fs/ceph/mds_client.c | 3 +-- > fs/ceph/mds_client.h | 1 + > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c > index e49ca0533df1..b8070e8c4686 100644 > --- a/fs/ceph/mds_client.c > +++ b/fs/ceph/mds_client.c > @@ -2466,7 +2466,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); > @@ -2627,7 +2627,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; > diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h > index 2a32afa15eb6..0811543ffd79 100644 > --- a/fs/ceph/mds_client.h > +++ b/fs/ceph/mds_client.h > @@ -308,6 +308,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*/ > + unsigned long r_deleg_ino; u64, as head->ino is __le64? Thanks, Ilya