WSL2-Linux-Kernel/fs/xfs
Ross Zwisler 7f6d5b529b dax: move writeback calls into the filesystems
Previously calls to dax_writeback_mapping_range() for all DAX filesystems
(ext2, ext4 & xfs) were centralized in filemap_write_and_wait_range().

dax_writeback_mapping_range() needs a struct block_device, and it used
to get that from inode->i_sb->s_bdev.  This is correct for normal inodes
mounted on ext2, ext4 and XFS filesystems, but is incorrect for DAX raw
block devices and for XFS real-time files.

Instead, call dax_writeback_mapping_range() directly from the filesystem
->writepages function so that it can supply us with a valid block
device.  This also fixes DAX code to properly flush caches in response
to sync(2).

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Cc: Al Viro <viro@ftp.linux.org.uk>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Jens Axboe <axboe@fb.com>
Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
Cc: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-02-27 10:28:52 -08:00
..
libxfs Merge branch 'xfs-setxattr-promotion' into for-next 2016-01-19 08:16:08 +11:00
Kconfig
Makefile xfs: stats are no longer dependent on CONFIG_PROC_FS 2015-10-19 08:42:46 +11:00
kmem.c xfs: more info from kmem deadlocks and high-level error msgs 2015-10-12 16:04:45 +11:00
kmem.h kmemcg: account certain kmem allocations to memcg 2016-01-14 16:00:49 -08:00
mrlock.h
uuid.c
uuid.h
xfs.h
xfs_acl.c xfs: Change how listxattr generates synthetic attributes 2015-12-06 21:34:16 -05:00
xfs_acl.h xfs: Change how listxattr generates synthetic attributes 2015-12-06 21:34:16 -05:00
xfs_aops.c dax: move writeback calls into the filesystems 2016-02-27 10:28:52 -08:00
xfs_aops.h dax: give DAX clearing code correct bdev 2016-02-27 10:28:52 -08:00
xfs_attr.h
xfs_attr_inactive.c
xfs_attr_list.c xfs: per-filesystem stats counter implementation 2015-10-12 18:21:22 +11:00
xfs_bmap_util.c dax: give DAX clearing code correct bdev 2016-02-27 10:28:52 -08:00
xfs_bmap_util.h
xfs_buf.c xfs: Update 2 for 4.5-rc1 2016-01-22 10:54:13 -08:00
xfs_buf.h xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_buf_item.c
xfs_buf_item.h
xfs_dir2_readdir.c xfs: per-filesystem stats counter implementation 2015-10-12 18:21:22 +11:00
xfs_discard.c
xfs_discard.h
xfs_dquot.c xfs: eliminate committed arg from xfs_bmap_finish 2016-01-11 11:34:01 +11:00
xfs_dquot.h
xfs_dquot_item.c
xfs_dquot_item.h
xfs_error.c xfs: print name of verifier if it fails 2016-01-04 16:10:19 +11:00
xfs_error.h
xfs_export.c
xfs_export.h
xfs_extent_busy.c
xfs_extent_busy.h
xfs_extfree_item.c
xfs_extfree_item.h
xfs_file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-01-23 12:24:56 -08:00
xfs_filestream.c
xfs_filestream.h
xfs_fsops.c
xfs_fsops.h
xfs_globals.c
xfs_icache.c xfs: per-filesystem stats counter implementation 2015-10-12 18:21:22 +11:00
xfs_icache.h
xfs_icreate_item.c
xfs_icreate_item.h
xfs_inode.c Merge branch 'xfs-setxattr-promotion' into for-next 2016-01-19 08:16:08 +11:00
xfs_inode.h
xfs_inode_item.c xfs: optimise away log forces on timestamp updates for fdatasync 2015-11-03 13:14:59 +11:00
xfs_inode_item.h xfs: optimise away log forces on timestamp updates for fdatasync 2015-11-03 13:14:59 +11:00
xfs_ioctl.c xfs: introduce per-inode DAX enablement 2016-01-04 16:44:15 +11:00
xfs_ioctl.h
xfs_ioctl32.c xfs: prefix XATTR_LIST_MAX with XFS_ 2015-10-12 16:02:56 +11:00
xfs_ioctl32.h
xfs_iomap.c Merge branch 'xfs-misc-fixes-for-4.5-2' into for-next 2016-01-12 07:04:30 +11:00
xfs_iomap.h
xfs_iops.c xfs: Update 2 for 4.5-rc1 2016-01-22 10:54:13 -08:00
xfs_iops.h
xfs_itable.c
xfs_itable.h
xfs_linux.h
xfs_log.c Merge branch 'xfs-misc-fixes-for-4.5' into for-next 2016-01-05 08:08:35 +11:00
xfs_log.h xfs: validate metadata LSNs against log on v5 superblocks 2015-10-12 15:59:25 +11:00
xfs_log_cil.c
xfs_log_priv.h xfs: debug mode log record crc error injection 2016-01-05 07:41:16 +11:00
xfs_log_recover.c xfs: fix endianness error when checking log block crc on big endian platforms 2016-02-08 11:03:58 +11:00
xfs_message.c xfs: more info from kmem deadlocks and high-level error msgs 2015-10-12 16:04:45 +11:00
xfs_message.h
xfs_mount.c Merge branch 'xfs-misc-fixes-for-4.4-2' into for-next 2015-11-03 13:27:58 +11:00
xfs_mount.h Merge branch 'xfs-dax-updates' into for-next 2015-11-03 13:28:41 +11:00
xfs_mru_cache.c
xfs_mru_cache.h
xfs_pnfs.c wrappers for ->i_mutex access 2016-01-22 18:04:28 -05:00
xfs_pnfs.h
xfs_qm.c xfs: updates for 4.4-rc1 2015-11-11 20:18:48 -08:00
xfs_qm.h
xfs_qm_bhv.c
xfs_qm_syscalls.c
xfs_quota.h
xfs_quotaops.c
xfs_rtalloc.c xfs: eliminate committed arg from xfs_bmap_finish 2016-01-11 11:34:01 +11:00
xfs_rtalloc.h
xfs_stats.c xfs: stats are no longer dependent on CONFIG_PROC_FS 2015-10-19 08:42:46 +11:00
xfs_stats.h xfs: per-filesystem stats counter implementation 2015-10-12 18:21:22 +11:00
xfs_super.c kmemcg: account certain kmem allocations to memcg 2016-01-14 16:00:49 -08:00
xfs_super.h
xfs_symlink.c xfs: eliminate committed arg from xfs_bmap_finish 2016-01-11 11:34:01 +11:00
xfs_symlink.h
xfs_sysctl.c
xfs_sysctl.h
xfs_sysfs.c xfs: debug mode log record crc error injection 2016-01-05 07:41:16 +11:00
xfs_sysfs.h
xfs_trace.c
xfs_trace.h xfs: add tracepoints to readpage calls 2016-01-08 11:28:35 +11:00
xfs_trans.c xfs: per-filesystem stats counter implementation 2015-10-12 18:21:22 +11:00
xfs_trans.h
xfs_trans_ail.c Revert "xfs: clear PF_NOFREEZE for xfsaild kthread" 2016-01-19 08:21:46 +11:00
xfs_trans_buf.c
xfs_trans_dquot.c xfs: send warning of project quota to userspace via netlink 2016-01-04 16:10:42 +11:00
xfs_trans_extfree.c
xfs_trans_inode.c xfs: optimise away log forces on timestamp updates for fdatasync 2015-11-03 13:14:59 +11:00
xfs_trans_priv.h
xfs_xattr.c xfs: Change how listxattr generates synthetic attributes 2015-12-06 21:34:16 -05:00