Skip to content

Commit

Permalink
Add SCSI_PASSTHROUGH to zvols to enable UNMAP support
Browse files Browse the repository at this point in the history
When exporting ZVOLs as SCSI LUNs, by default Windows will not
issue them UNMAP commands. This reduces storage efficiency in
many cases.

We add the SCSI_PASSTHROUGH flag to the zvol's device queue,
which lets the SCSI target logic know that it can handle SCSI
commands.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: John Gallagher <john.gallagher@delphix.com>
Signed-off-by: Paul Dagnelie <pcd@delphix.com>
Closes openzfs#8933
  • Loading branch information
pcd1193182 authored and tonyhutter committed Aug 13, 2019
1 parent 547bfab commit d3e70e4
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions module/zfs/zvol.c
Original file line number Diff line number Diff line change
Expand Up @@ -1876,6 +1876,10 @@ zvol_create_minor_impl(const char *name)
#ifdef QUEUE_FLAG_ADD_RANDOM
blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, zv->zv_queue);
#endif
/* This flag was introduced in kernel version 4.12. */
#ifdef QUEUE_FLAG_SCSI_PASSTHROUGH
blk_queue_flag_set(QUEUE_FLAG_SCSI_PASSTHROUGH, zv->zv_queue);
#endif

if (spa_writeable(dmu_objset_spa(os))) {
if (zil_replay_disable)
Expand Down

0 comments on commit d3e70e4

Please sign in to comment.