lkml.org 
[lkml]   [2016]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 3/3] xfs: Add alignment check for DAX mount
On Mon, May 02, 2016 at 12:42:58PM -0600, Toshi Kani wrote:
> When a partition is not aligned by 4KB, mount -o dax succeeds,
> but any read/write access to the filesystem fails, except for
> metadata update.
>
> Call bdev_direct_access to check the alignment when -o dax is
> specified.
>
> Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
> Cc: Dave Chinner <david@fromorbit.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
> Cc: Christoph Hellwig <hch@infradead.org>
> Cc: Boaz Harrosh <boaz@plexistor.com>
> ---
> fs/xfs/xfs_super.c | 23 +++++++++++++++++++----
> 1 file changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index 187e14b..b7ee323 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -1557,15 +1557,30 @@ xfs_fs_fill_super(
> sb->s_flags |= MS_I_VERSION;
>
> if (mp->m_flags & XFS_MOUNT_DAX) {
> + struct blk_dax_ctl dax = {
> + .sector = 0,
> + .size = PAGE_SIZE,
> + };
> xfs_warn(mp,
> - "DAX enabled. Warning: EXPERIMENTAL, use at your own risk");
> + "DAX enabled. Warning: EXPERIMENTAL, use at your own risk");
> if (sb->s_blocksize != PAGE_SIZE) {
> xfs_alert(mp,
> "Filesystem block size invalid for DAX Turning DAX off.");
> mp->m_flags &= ~XFS_MOUNT_DAX;
> - } else if (!sb->s_bdev->bd_disk->fops->direct_access) {
> - xfs_alert(mp,
> - "Block device does not support DAX Turning DAX off.");
> + } else if ((error = bdev_direct_access(sb->s_bdev, &dax)) < 0) {
> + switch (error) {
> + case -EOPNOTSUPP:
> + xfs_alert(mp,
> + "Block device does not support DAX Turning DAX off.");

Since you're already in here editing all the strings, can you add a period to
make it more readable? Applies to all strings.

> + "Block device does not support DAX. Turning DAX off.");
^

> + break;
> + case -EINVAL:
> + xfs_alert(mp,
> + "Partition alignment invalid for DAX Turning DAX off.");
> + break;
> + default:
> + xfs_alert(mp,
> + "DAX access failed (%d) DAX Turning DAX off.", error);

I DAX think you might DAX have too many DAXes in here. :)

> + }
> mp->m_flags &= ~XFS_MOUNT_DAX;
> }
> }

Other than the nit-picking about the strings, this seems fine.

You can add this for the series:
Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>

\
 
 \ /
  Last update: 2016-05-02 22:01    [W:0.123 / U:0.264 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site