Re: [PATCH 6.14] btrfs: ioctl: error on fixed buffer flag for io-uring cmd

From: Pavel Begunkov
Date: Thu Mar 27 2025 - 11:00:33 EST


On 3/26/25 15:57, Sidong Yang wrote:
Currently, the io-uring fixed buffer cmd flag is silently dismissed,
even though it does not work. This patch returns an error when the flag
is set, making it clear that operation is not supported.

IIRC, the feature where you use the flag hasn't been merged
yet and is targeting 6.16. In this case you need to send this
patch for 6.15, and once merged stable will try to pick it up
from there.

Fixes: 34310c442e17 ("btrfs: add io_uring command for encoded reads (ENCODED_READ ioctl)")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Sidong Yang <sidong.yang@xxxxxxxxxx>
---
fs/btrfs/ioctl.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 6c18bad53cd3..62bb9e11e8d6 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -4823,6 +4823,12 @@ static int btrfs_uring_encoded_read(struct io_uring_cmd *cmd, unsigned int issue
ret = -EPERM;
goto out_acct;
}
+
+ if (cmd->flags & IORING_URING_CMD_FIXED) {
+ ret = -EOPNOTSUPP;
+ goto out_acct;
+ }
+
file = cmd->file;
inode = BTRFS_I(file->f_inode);
fs_info = inode->root->fs_info;
@@ -4959,6 +4965,11 @@ static int btrfs_uring_encoded_write(struct io_uring_cmd *cmd, unsigned int issu
goto out_acct;
}
+ if (cmd->flags & IORING_URING_CMD_FIXED) {
+ ret = -EOPNOTSUPP;
+ goto out_acct;
+ }
+
file = cmd->file;
sqe_addr = u64_to_user_ptr(READ_ONCE(cmd->sqe->addr));

--
Pavel Begunkov