From: Dan Williams Date: Fri, 22 Dec 2017 01:04:07 +0000 (-0800) Subject: ext4: auto disable dax instead of failing mount X-Git-Tag: v4.19~1638^2~1^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=24f3478d664b1eaa6f8860d3aa521aebe51b2a62;p=platform%2Fkernel%2Flinux-rpi.git ext4: auto disable dax instead of failing mount Bring the ext4 filesystem in line with xfs that only warns and continues when the "-o dax" option is specified to mount and the backing device does not support dax. This is in preparation for removing dax support from devices that do not enable get_user_pages() operations on dax mappings. In other words 'gup' support is required and configurations that were using so called 'page-less' dax will be converted back to using the page cache. Removing the broken 'page-less' dax support is a pre-requisite for removing the "EXPERIMENTAL" warning when mounting a filesystem in dax mode. Reviewed-by: Jan Kara Signed-off-by: Dan Williams --- diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 7c46693..18873ea 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3710,11 +3710,14 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) if (ext4_has_feature_inline_data(sb)) { ext4_msg(sb, KERN_ERR, "Cannot use DAX on a filesystem" " that may contain inline data"); - goto failed_mount; + sbi->s_mount_opt &= ~EXT4_MOUNT_DAX; } err = bdev_dax_supported(sb, blocksize); - if (err) - goto failed_mount; + if (err) { + ext4_msg(sb, KERN_ERR, + "DAX unsupported by block device. Turning off DAX."); + sbi->s_mount_opt &= ~EXT4_MOUNT_DAX; + } } if (ext4_has_feature_encrypt(sb) && es->s_encryption_level) {