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

From: Sidong Yang
Date: Thu Mar 27 2025 - 11:32:43 EST


On Thu, Mar 27, 2025 at 02:58:11PM +0000, Pavel Begunkov wrote:
> 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.

Thanks, I mistakenly thought the feature would be merged in 6.15. If so,
I need send this for 6.15 after sending the patch for the fixed buffer feature.

>
> > 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
>