|
@@ -133,27 +133,20 @@ void nfsd4_setup_layout_type(struct svc_export *exp)
|
|
|
if (!(exp->ex_flags & NFSEXP_PNFS))
|
|
|
return;
|
|
|
|
|
|
- /*
|
|
|
- * If flex file is configured, use it by default. Otherwise
|
|
|
- * check if the file system supports exporting a block-like layout.
|
|
|
- * If the block device supports reservations prefer the SCSI layout,
|
|
|
- * otherwise advertise the block layout.
|
|
|
- */
|
|
|
#ifdef CONFIG_NFSD_FLEXFILELAYOUT
|
|
|
exp->ex_layout_types |= 1 << LAYOUT_FLEX_FILES;
|
|
|
#endif
|
|
|
#ifdef CONFIG_NFSD_BLOCKLAYOUT
|
|
|
- /* overwrite flex file layout selection if needed */
|
|
|
if (sb->s_export_op->get_uuid &&
|
|
|
sb->s_export_op->map_blocks &&
|
|
|
sb->s_export_op->commit_blocks)
|
|
|
exp->ex_layout_types |= 1 << LAYOUT_BLOCK_VOLUME;
|
|
|
#endif
|
|
|
#ifdef CONFIG_NFSD_SCSILAYOUT
|
|
|
- /* overwrite block layout selection if needed */
|
|
|
if (sb->s_export_op->map_blocks &&
|
|
|
sb->s_export_op->commit_blocks &&
|
|
|
- sb->s_bdev && sb->s_bdev->bd_disk->fops->pr_ops)
|
|
|
+ sb->s_bdev && sb->s_bdev->bd_disk->fops->pr_ops &&
|
|
|
+ blk_queue_scsi_passthrough(sb->s_bdev->bd_disk->queue))
|
|
|
exp->ex_layout_types |= 1 << LAYOUT_SCSI;
|
|
|
#endif
|
|
|
}
|