On Tue 16-02-16 20:34:16, Ross Zwisler wrote: > Online defrag operations for ext4 are hard coded to use the page cache. > See ext4_ioctl() -> ext4_move_extents() -> move_extent_per_page() > > When combined with DAX I/O, which circumvents the page cache, this can > result in data corruption. This was observed with xfstests ext4/307 and > ext4/308. > > Fix this by only allowing online defrag for non-DAX files. > > Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx> We need to handle this eventually but for now we are fine. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/ioctl.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c > index 0f6c369..e32c86f 100644 > --- a/fs/ext4/ioctl.c > +++ b/fs/ext4/ioctl.c > @@ -583,6 +583,11 @@ group_extend_out: > "Online defrag not supported with bigalloc"); > err = -EOPNOTSUPP; > goto mext_out; > + } else if (IS_DAX(inode)) { > + ext4_msg(sb, KERN_ERR, > + "Online defrag not supported with DAX"); > + err = -EOPNOTSUPP; > + goto mext_out; > } > > err = mnt_want_write_file(filp); > -- > 2.5.0 > > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs