ceph: don't reach into request header for readdir info
authorJeff Layton <jlayton@kernel.org>
Wed, 9 Dec 2020 15:27:01 +0000 (10:27 -0500)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 14 Dec 2020 22:21:48 +0000 (23:21 +0100)
We already have a pointer to the argument struct in req->r_args. Use that
instead of groveling around in the ceph_mds_request_head.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/inode.c

index 11ccdee..adc8fc3 100644 (file)
@@ -1594,8 +1594,7 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req,
        struct dentry *dn;
        struct inode *in;
        int err = 0, skipped = 0, ret, i;
-       struct ceph_mds_request_head *rhead = req->r_request->front.iov_base;
-       u32 frag = le32_to_cpu(rhead->args.readdir.frag);
+       u32 frag = le32_to_cpu(req->r_args.readdir.frag);
        u32 last_hash = 0;
        u32 fpos_offset;
        struct ceph_readdir_cache_control cache_ctl = {};
@@ -1612,7 +1611,7 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req,
                } else if (rinfo->offset_hash) {
                        /* mds understands offset_hash */
                        WARN_ON_ONCE(req->r_readdir_offset != 2);
-                       last_hash = le32_to_cpu(rhead->args.readdir.offset_hash);
+                       last_hash = le32_to_cpu(req->r_args.readdir.offset_hash);
                }
        }