[GIT PULL] dax-misc for 4.7

From: Vishal Verma
Date: Mon May 23 2016 - 19:52:05 EST


Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/dax-misc-for-4.7

...to receive the dax error handling topic branch for 4.7.

Most of these changes have been stable since before the merge window, but getting
the different trees/patchsets integrated into this topic branch took a couple more
days. These have also been in linux-next for almost a week, and have received a
positive 0day notification for a successful build for 118 configs.

Note that this branch depends on Ted's ext4 dev branch, and should be merged after
that. The pull request is based on this branch so that the shortlog and diffstat
look correct.

The merge with libnvdimm-for-next will cause a conflict, and I have a branch
with the expected resolution at:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-for-4.7-merge

Notably, the automatic merge ends up with two copies of a function in fs/block_dev.c
blkdev_dax_capable(), and bdev_dax_capable(), where blkdev_dax_capable is unused, and
should be removed [1].

[1]: http://www.spinics.net/lists/kernel/msg2258671.html


The following changes since commit 12735f881952c32b31bc4e433768f18489f79ec9:

ext4: pre-zero allocated blocks for DAX IO (2016-05-13 00:51:15 -0400)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm tags/dax-misc-for-4.7

for you to fetch changes up to 40543f62cbdce42633e3fe10923099feee272e1f:

dax: fix a comment in dax_zero_page_range and dax_truncate_page (2016-05-18 12:16:58 -0600)

----------------------------------------------------------------
DAX error handling for 4.7

- Until now, dax has been disabled if media errors were found on
any device. This enables the use of DAX in the presence of these
errors by making all sector-aligned zeroing go through the driver.
- The driver (already) has the ability to clear errors on writes that
are sent through the block layer using 'DSMs' defined in ACPI 6.1.

Other misc changes:

- When mounting DAX filesystems, check to make sure the partition
is page aligned. This is a requirement for DAX, and previously, we
allowed such unaligned mounts to succeed, but subsequent reads/writes
would fail.

- Misc/cleanup fixes from Jan that remove unused code from DAX related to
zeroing, writeback, and some size checks.

----------------------------------------------------------------
Christoph Hellwig (1):
dax: export a low-level __dax_zero_page_range helper

Dan Williams (2):
dax: fallback from pmd to pte on error
dax: enable dax in the presence of known media errors (badblocks)

Jan Kara (7):
dax: Remove complete_unwritten argument
ext2: Fix block zeroing in ext2_get_blocks() for DAX
ext2: Avoid DAX zeroing to corrupt data
dax: Remove dead zeroing code from fault handlers
dax: Remove zeroing from dax_io()
dax: Remove pointless writeback from dax_do_io()
dax: Remove redundant inode size checks

Matthew Wilcox (1):
dax: use sb_issue_zerout instead of calling dax_clear_sectors

NeilBrown (1):
DAX: move RADIX_DAX_ definitions to dax.c

Toshi Kani (6):
block: Add vfs_msg() interface
block: Add bdev_dax_supported() for dax mount checks
ext4: Add alignment check for DAX mount
ext2: Add alignment check for DAX mount
xfs: Add alignment check for DAX mount
block: Update blkdev_dax_capable() for consistency

Vishal Verma (2):
dax: for truncate/hole-punch, do zeroing through the driver if possible
dax: fix a comment in dax_zero_page_range and dax_truncate_page

Documentation/filesystems/dax.txt | 32 +++++
arch/powerpc/sysdev/axonram.c | 2 +-
block/ioctl.c | 30 -----
drivers/block/brd.c | 2 +-
drivers/nvdimm/pmem.c | 10 +-
drivers/s390/block/dcssblk.c | 4 +-
fs/block_dev.c | 91 ++++++++++++-
fs/dax.c | 266 +++++++++++---------------------------
fs/ext2/file.c | 4 +-
fs/ext2/inode.c | 12 +-
fs/ext2/super.c | 11 +-
fs/ext4/file.c | 4 +-
fs/ext4/super.c | 11 +-
fs/xfs/xfs_bmap_util.c | 15 +--
fs/xfs/xfs_file.c | 7 +-
fs/xfs/xfs_super.c | 12 +-
include/linux/blkdev.h | 15 ++-
include/linux/dax.h | 25 ++--
include/linux/fs.h | 9 --
include/linux/radix-tree.h | 9 --
20 files changed, 257 insertions(+), 314 deletions(-)