summaryrefslogtreecommitdiffstats
path: root/fs/ext4/ext4.h
diff options
context:
space:
mode:
authorRoss Zwisler2018-07-29 23:00:22 +0200
committerTheodore Ts'o2018-07-29 23:00:22 +0200
commit430657b6be896db57d974375cc499ca212c7f01d (patch)
treeba4489c4000ac7946de998f9f6a5cd2a3834d283 /fs/ext4/ext4.h
parentdax: dax_layout_busy_page() warn on !exceptional (diff)
downloadkernel-qcow2-linux-430657b6be896db57d974375cc499ca212c7f01d.tar.gz
kernel-qcow2-linux-430657b6be896db57d974375cc499ca212c7f01d.tar.xz
kernel-qcow2-linux-430657b6be896db57d974375cc499ca212c7f01d.zip
ext4: handle layout changes to pinned DAX mappings
Follow the lead of xfs_break_dax_layouts() and add synchronization between operations in ext4 which remove blocks from an inode (hole punch, truncate down, etc.) and pages which are pinned due to DAX DMA operations. Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r--fs/ext4/ext4.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 6d7dec48372b..1fc013f3d944 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2459,6 +2459,7 @@ extern int ext4_get_inode_loc(struct inode *, struct ext4_iloc *);
extern int ext4_inode_attach_jinode(struct inode *inode);
extern int ext4_can_truncate(struct inode *inode);
extern int ext4_truncate(struct inode *);
+extern int ext4_break_layouts(struct inode *);
extern int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length);
extern int ext4_truncate_restart_trans(handle_t *, struct inode *, int nblocks);
extern void ext4_set_inode_flags(struct inode *);