On Tue, Feb 09, 2021 at 05:47:54PM -0500, Vivek Goyal wrote: > Right now "mount -t virtiofs -o dax myfs /mnt/virtiofs" succeeds even > if filesystem deivce does not have a cache window and hence DAX can't > be supported. > > This gives a false sense to user that they are using DAX with virtiofs > but fact of the matter is that they are not. > > Fix this by returning error if dax can't be supported and user has asked > for it. > > Signed-off-by: Vivek Goyal > --- > fs/fuse/virtio_fs.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > Index: redhat-linux/fs/fuse/virtio_fs.c > =================================================================== > --- redhat-linux.orig/fs/fuse/virtio_fs.c 2021-02-04 10:40:21.704370721 -0500 > +++ redhat-linux/fs/fuse/virtio_fs.c 2021-02-09 15:56:45.693653979 -0500 > @@ -1324,8 +1324,15 @@ static int virtio_fs_fill_super(struct s > > /* virtiofs allocates and installs its own fuse devices */ > ctx->fudptr = NULL; > - if (ctx->dax) > + if (ctx->dax) { > + if (!fs->dax_dev) { > + err = -EINVAL; > + pr_err("virtio-fs: dax can't be enabled as filesystem" > + " device does not support it.\n"); > + goto err_free_fuse_devs; > + } > ctx->dax_dev = fs->dax_dev; > + } > err = fuse_fill_super_common(sb, ctx); > if (err < 0) > goto err_free_fuse_devs; Reviewed-by: Stefan Hajnoczi