nfs/blocklayout: use proper fmode for opening block devices
authorChristoph Hellwig <hch@lst.de>
Fri, 8 Jul 2016 09:41:28 +0000 (18:41 +0900)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 15 Jul 2016 19:46:08 +0000 (15:46 -0400)
This was fixed for the original block layout code a while ago, but also
needs to be fixed for the SCSI layout path.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/blocklayout/dev.c

index e5b89675263efffc0629dba595782248ade72715..7fb9c07c078c018fdaea643c4c018c824cdfb7e4 100644 (file)
@@ -316,7 +316,7 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d,
                return -EINVAL;
        }
 
-       d->bdev = blkdev_get_by_path(devname, FMODE_READ, NULL);
+       d->bdev = blkdev_get_by_path(devname, FMODE_READ | FMODE_WRITE, NULL);
        if (IS_ERR(d->bdev)) {
                pr_warn("pNFS: failed to open device %s (%ld)\n",
                        devname, PTR_ERR(d->bdev));
@@ -352,7 +352,7 @@ bl_parse_scsi(struct nfs_server *server, struct pnfs_block_dev *d,
        return 0;
 
 out_blkdev_put:
-       blkdev_put(d->bdev, FMODE_READ);
+       blkdev_put(d->bdev, FMODE_READ | FMODE_WRITE);
        return error;
 }