On Tue, May 03, 2016 at 11:00:21AM +0200, Jan Kara wrote: > On Tue 03-05-16 01:44:10, Christoph Hellwig wrote: > > Please come up with a version that doesn't require tons of boilerplate > > code in every file system. > > Well, I was thinking about some helper as well but we could save ~4 lines > with that and that didn't seem significant to me. Most of the lines is > actually reporting appropriate mount error in dmesg and that is > fs-dependent so it needs to stay in the filesystem... So what do you have > in mind? I guess if you wanted to reduce the code needed in each filesystem, you could avoid having different error messages for each of the failure conditions, and just print the error value. All the error cases caught by the current code are unique, so we aren't losing any information. The resulting patch for ext4 would look like this: @@ -3416,14 +3416,19 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) } if (sbi->s_mount_opt & EXT4_MOUNT_DAX) { + struct blk_dax_ctl dax = { + .sector = 0, + .size = PAGE_SIZE, + }; if (blocksize != PAGE_SIZE) { ext4_msg(sb, KERN_ERR, "error: unsupported blocksize for dax"); goto failed_mount; } - if (!sb->s_bdev->bd_disk->fops->direct_access) { + err = bdev_direct_access(sb->s_bdev, &dax); + if (err < 0) { ext4_msg(sb, KERN_ERR, - "error: device does not support dax"); + "error: dax access failed (%d)", err); goto failed_mount; } } -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html