[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241016201340.GQ21853@frogsfrogsfrogs>
Date: Wed, 16 Oct 2024 13:13:40 -0700
From: "Darrick J. Wong" <djwong@...nel.org>
To: John Garry <john.g.garry@...cle.com>
Cc: axboe@...nel.dk, brauner@...nel.org, viro@...iv.linux.org.uk,
jack@...e.cz, dchinner@...hat.com, hch@....de, cem@...nel.org,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-xfs@...r.kernel.org, linux-fsdevel@...r.kernel.org,
hare@...e.de, martin.petersen@...cle.com,
catherine.hoang@...cle.com, mcgrof@...nel.org,
ritesh.list@...il.com, ojaswin@...ux.ibm.com
Subject: Re: [PATCH v9 7/8] xfs: Validate atomic writes
On Wed, Oct 16, 2024 at 10:03:24AM +0000, John Garry wrote:
> Validate that an atomic write adheres to length/offset rules. Currently
> we can only write a single FS block.
>
> For an IOCB with IOCB_ATOMIC set to get as far as xfs_file_write_iter(),
> FMODE_CAN_ATOMIC_WRITE will need to be set for the file; for this,
> ATOMICWRITES flags would also need to be set for the inode.
>
> Signed-off-by: John Garry <john.g.garry@...cle.com>
This looks ok to me now,
Reviewed-by: Darrick J. Wong <djwong@...nel.org>
--D
> ---
> fs/xfs/xfs_file.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index b19916b11fd5..1ccbc1eb75c9 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -852,6 +852,20 @@ xfs_file_write_iter(
> if (IS_DAX(inode))
> return xfs_file_dax_write(iocb, from);
>
> + if (iocb->ki_flags & IOCB_ATOMIC) {
> + /*
> + * Currently only atomic writing of a single FS block is
> + * supported. It would be possible to atomic write smaller than
> + * a FS block, but there is no requirement to support this.
> + * Note that iomap also does not support this yet.
> + */
> + if (ocount != ip->i_mount->m_sb.sb_blocksize)
> + return -EINVAL;
> + ret = generic_atomic_write_valid(iocb, from);
> + if (ret)
> + return ret;
> + }
> +
> if (iocb->ki_flags & IOCB_DIRECT) {
> /*
> * Allow a directio write to fall back to a buffered
> --
> 2.31.1
>
>
Powered by blists - more mailing lists