On Wed, Oct 30, 2024 at 09:27:40PM +0530, Ritesh Harjani (IBM) wrote:
> FS needs to add the fmode capability in order to support atomic writes
> during file open (refer kiocb_set_rw_flags()). Set this capability on
> a regular file if ext4 can do atomic write.
>
> Reviewed-by: John Garry <john.g.garry@oracle.com>
> Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> ---
> fs/ext4/file.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/fs/ext4/file.c b/fs/ext4/file.c
> index a7b9b9751a3f..8116bd78910b 100644
> --- a/fs/ext4/file.c
> +++ b/fs/ext4/file.c
> @@ -898,6 +898,9 @@ static int ext4_file_open(struct inode *inode, struct file *filp)
> return ret;
> }
>
> + if (S_ISREG(inode->i_mode) && ext4_can_atomic_write(inode->i_sb))
Modulo my comment earlier about ext4_can_atomic_write, this looks ok to
me. With either variant, I say:
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> + filp->f_mode |= FMODE_CAN_ATOMIC_WRITE;
> +
> filp->f_mode |= FMODE_NOWAIT | FMODE_CAN_ODIRECT;
> return dquot_file_open(inode, filp);
> }
> --
> 2.46.0
>
>