diff options
author | Toshi Kani <toshi.kani@hpe.com> | 2018-09-16 03:37:59 +0200 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2018-09-16 03:37:59 +0200 |
commit | cce6c9f7e6029caee45c459db5b3e78fec6973cb (patch) | |
tree | 458d780a12b482f679743feeecb648cb52a07fb6 /fs/ext4/xattr.c | |
parent | ext4, dax: add ext4_bmap to ext4_dax_aops (diff) | |
download | linux-cce6c9f7e6029caee45c459db5b3e78fec6973cb.tar.xz linux-cce6c9f7e6029caee45c459db5b3e78fec6973cb.zip |
ext4, dax: set ext4_dax_aops for dax files
Sync syscall to DAX file needs to flush processor cache, but it
currently does not flush to existing DAX files. This is because
'ext4_da_aops' is set to address_space_operations of existing DAX
files, instead of 'ext4_dax_aops', since S_DAX flag is set after
ext4_set_aops() in the open path.
New file
--------
lookup_open
ext4_create
__ext4_new_inode
ext4_set_inode_flags // Set S_DAX flag
ext4_set_aops // Set aops to ext4_dax_aops
Existing file
-------------
lookup_open
ext4_lookup
ext4_iget
ext4_set_aops // Set aops to ext4_da_aops
ext4_set_inode_flags // Set S_DAX flag
Change ext4_iget() to initialize i_flags before ext4_set_aops().
Fixes: 5f0663bb4a64 ("ext4, dax: introduce ext4_dax_aops")
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Suggested-by: Jan Kara <jack@suse.cz>
Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/ext4/xattr.c')
0 files changed, 0 insertions, 0 deletions