[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160502195027.GC14421@linux.intel.com>
Date: Mon, 2 May 2016 13:50:27 -0600
From: Ross Zwisler <ross.zwisler@...ux.intel.com>
To: Toshi Kani <toshi.kani@....com>
Cc: dan.j.williams@...el.com, jack@...e.cz, david@...morbit.com,
hch@...radead.org, boaz@...xistor.com, tytso@....edu,
adilger.kernel@...ger.ca, ross.zwisler@...ux.intel.com,
micah.parrish@....com, linux-nvdimm@...ts.01.org,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [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@....com>
> Cc: Dave Chinner <david@...morbit.com>
> Cc: Dan Williams <dan.j.williams@...el.com>
> Cc: Ross Zwisler <ross.zwisler@...ux.intel.com>
> Cc: Christoph Hellwig <hch@...radead.org>
> Cc: Boaz Harrosh <boaz@...xistor.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@...ux.intel.com>
Powered by blists - more mailing lists