On 08/26, Eric Biggers wrote:
> From: Eric Biggers <[email protected]>
> 
> Add support for STATX_DIOALIGN to f2fs, so that direct I/O alignment
> restrictions are exposed to userspace in a generic way.
> 
> Signed-off-by: Eric Biggers <[email protected]>

Acked-by: Jaegeuk Kim <[email protected]>

> ---
>  fs/f2fs/file.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 8e11311db21060..79177050732803 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -847,6 +847,24 @@ int f2fs_getattr(struct user_namespace *mnt_userns, 
> const struct path *path,
>               stat->btime.tv_nsec = fi->i_crtime.tv_nsec;
>       }
>  
> +     /*
> +      * Return the DIO alignment restrictions if requested.  We only return
> +      * this information when requested, since on encrypted files it might
> +      * take a fair bit of work to get if the file wasn't opened recently.
> +      *
> +      * f2fs sometimes supports DIO reads but not DIO writes.  STATX_DIOALIGN
> +      * cannot represent that, so in that case we report no DIO support.
> +      */
> +     if ((request_mask & STATX_DIOALIGN) && S_ISREG(inode->i_mode)) {
> +             unsigned int bsize = i_blocksize(inode);
> +
> +             stat->result_mask |= STATX_DIOALIGN;
> +             if (!f2fs_force_buffered_io(inode, WRITE)) {
> +                     stat->dio_mem_align = bsize;
> +                     stat->dio_offset_align = bsize;
> +             }
> +     }
> +
>       flags = fi->i_flags;
>       if (flags & F2FS_COMPR_FL)
>               stat->attributes |= STATX_ATTR_COMPRESSED;
> -- 
> 2.37.2


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to