On Mon, May 09, 2016 at 11:23:03AM -0700, Dan Williams wrote: > On Mon, May 9, 2016 at 11:12 AM, Toshi Kani <toshi.kani@xxxxxxx> wrote: > > On Sun, 2016-05-08 at 12:14 -0700, Dan Williams wrote: > >> On Thu, May 5, 2016 at 5:29 PM, Toshi Kani <toshi.kani@xxxxxxx> wrote: > > : > >> > +int bdev_supports_dax(struct super_block *sb, int blocksize) > >> > +{ > >> > + struct blk_dax_ctl dax = { > >> > + .sector = 0, > >> > + .size = PAGE_SIZE, > >> > + }; > >> > + int err; > >> > + > >> > + if (blocksize != PAGE_SIZE) { > >> > + vfs_msg(sb, KERN_ERR, "error: unsupported blocksize for > >> > dax"); > >> > + return -EINVAL; > >> > + } > >> > + > >> > + err = bdev_direct_access(sb->s_bdev, &dax); > >> > + if (err < 0) { > >> > + switch (err) { > >> > + case -EOPNOTSUPP: > >> > + vfs_msg(sb, KERN_ERR, > >> > + "error: device does not support dax"); > >> > + break; > >> > + case -EINVAL: > >> > + vfs_msg(sb, KERN_ERR, > >> > + "error: unaligned partition for dax"); > >> > + break; > >> > + default: > >> > + vfs_msg(sb, KERN_ERR, > >> > + "error: dax access failed (%d)", err); > >> > + } > >> > + return err; > >> > + } > >> > + > >> > + return 0; > >> > +} > >> > +EXPORT_SYMBOL_GPL(bdev_supports_dax); > >> > >> This patch should replace blkdev_dax_capable(), or just reuse that > >> existing routine, or am I missing something? > > > > Good question. bdev_supports_dax() is a helper function tailored for the > > filesystem's mount -o dax case. While blkdev_dax_capable() is similar, it > > does not need error messages like "device does not support dax" since it > > implicitly enables dax when capable. So, I think we can keep > > blkdev_dax_capable(), but change it to call bdev_direct_access() so that > > actual check is performed in a single place. > > Sounds good to me. Can you name them consistently then? i.e. blkdev_dax_supported() and blkdev_dax_capable()? Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- 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