]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fuse-uring: use named constants for io-uring iovec indices
authorJoanne Koong <joannelkoong@gmail.com>
Fri, 12 Jun 2026 21:05:09 +0000 (14:05 -0700)
committerMiklos Szeredi <mszeredi@redhat.com>
Mon, 15 Jun 2026 12:06:21 +0000 (14:06 +0200)
Replace magic indices 0 and 1 for the iovec array with named constants
FUSE_URING_IOV_HEADERS and FUSE_URING_IOV_PAYLOAD. This makes the usages
self-documenting and prepares for buffer ring support which will also
reference these iovec slots by index.

Reviewed-by: Bernd Schubert <bernd@bsbernd.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Baokun Li <libaokun@linux.alibaba.com>
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dev_uring.c

index 0867799e1a3f1da49b5324e57ee5a144977e1454..ba5edf5d01b3a3a8eb29ce19f0213686693c7ae4 100644 (file)
@@ -18,7 +18,8 @@ MODULE_PARM_DESC(enable_uring,
                 "Enable userspace communication through io-uring");
 
 #define FUSE_URING_IOV_SEGS 2 /* header and payload */
-
+#define FUSE_URING_IOV_HEADERS 0
+#define FUSE_URING_IOV_PAYLOAD 1
 
 bool fuse_uring_enabled(void)
 {
@@ -1094,8 +1095,8 @@ static int fuse_uring_do_register(struct fuse_ring_ent *ent,
 }
 
 /*
- * sqe->addr is a ptr to an iovec array, iov[0] has the headers, iov[1]
- * the payload
+ * sqe->addr is a ptr to an iovec array, iov[FUSE_URING_IOV_HEADERS] has the
+ * headers, iov[FUSE_URING_IOV_PAYLOAD] the payload
  */
 static int fuse_uring_get_iovec_from_sqe(const struct io_uring_sqe *sqe,
                                         struct iovec iov[FUSE_URING_IOV_SEGS])
@@ -1125,8 +1126,8 @@ fuse_uring_create_ring_ent(struct io_uring_cmd *cmd,
 {
        struct fuse_ring *ring = queue->ring;
        struct fuse_ring_ent *ent;
-       size_t payload_size;
        struct iovec iov[FUSE_URING_IOV_SEGS];
+       struct iovec *headers, *payload;
        int err;
 
        err = fuse_uring_get_iovec_from_sqe(cmd->sqe, iov);
@@ -1137,15 +1138,16 @@ fuse_uring_create_ring_ent(struct io_uring_cmd *cmd,
        }
 
        err = -EINVAL;
-       if (iov[0].iov_len < sizeof(struct fuse_uring_req_header)) {
-               pr_info_ratelimited("Invalid header len %zu\n", iov[0].iov_len);
+       headers = &iov[FUSE_URING_IOV_HEADERS];
+       if (headers->iov_len < sizeof(struct fuse_uring_req_header)) {
+               pr_info_ratelimited("Invalid header len %zu\n", headers->iov_len);
                return ERR_PTR(err);
        }
 
-       payload_size = iov[1].iov_len;
-       if (payload_size < ring->max_payload_sz) {
+       payload = &iov[FUSE_URING_IOV_PAYLOAD];
+       if (payload->iov_len < ring->max_payload_sz) {
                pr_info_ratelimited("Invalid req payload len %zu\n",
-                                   payload_size);
+                                   payload->iov_len);
                return ERR_PTR(err);
        }
 
@@ -1157,8 +1159,8 @@ fuse_uring_create_ring_ent(struct io_uring_cmd *cmd,
        INIT_LIST_HEAD(&ent->list);
 
        ent->queue = queue;
-       ent->headers = iov[0].iov_base;
-       ent->payload = iov[1].iov_base;
+       ent->headers = headers->iov_base;
+       ent->payload = payload->iov_base;
 
        atomic_inc(&ring->queue_refs);
        return ent;