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.  Add alignment check to ext4, ext2, and xfs.

- Patch 1-2 add bdev_dax_supported() which performs all the checks
  necessary for dax mount.
- Patch 3-5 change fillesystems to call bdev_dax_supported().
- Patch 6 is a cleanup to keep dax capability checks consistent.

v4:
 - blkdev_dax_capable() is similar to bdev_dax_supported().
   Manage them consistently. (Dan Williams, Dave Chinner)

v3:
 - Remove boilerplate code from filesytems (Christoph Hellwig)
 - Add a helper function to perform all checks (Dave Chinner)

v2:
 - Use a helper function via ->direct_access for the check.
   (Christoph Hellwig)
 - Call bdev_direct_access() with sector 0 for the check.
   (Boaz Harrosh)

---
Toshi Kani (6):
 1/6 block: Add vfs_msg() interface
 2/6 block: Add bdev_dax_supported() for dax mount checks
 3/6 ext4: Add alignment check for DAX mount
 4/6 ext2: Add alignment check for DAX mount
 5/6 xfs: Add alignment check for DAX mount
 6/6 block: Update blkdev_dax_capable() for consistency

---
 block/ioctl.c          | 30 ----------------
 fs/block_dev.c         | 96 ++++++++++++++++++++++++++++++++++++++++++++++++--
 fs/ext2/super.c        | 11 ++----
 fs/ext4/super.c        | 11 ++----
 fs/xfs/xfs_super.c     | 12 +++----
 include/linux/blkdev.h | 13 +++++++
 include/linux/fs.h     |  8 -----
 7 files changed, 116 insertions(+), 65 deletions(-)

Reply via email to