summaryrefslogtreecommitdiffstats
path: root/sys/cam/ctl/ctl_backend_block.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2014-10-20 07:33:41 +0000
committermav <mav@FreeBSD.org>2014-10-20 07:33:41 +0000
commit29253fce187f2bc4585df13155a351d6f3b17cb3 (patch)
treedc8aa3e98e17a6080805d79f6658364a2a281740 /sys/cam/ctl/ctl_backend_block.c
parentf7c3270824c4c3876dd5562034af36fe5e6c8326 (diff)
downloadFreeBSD-src-29253fce187f2bc4585df13155a351d6f3b17cb3.zip
FreeBSD-src-29253fce187f2bc4585df13155a351d6f3b17cb3.tar.gz
MFC r272734:
Add support for WRITE ATOMIC (16) command and report SBC-4 compliance. Atomic writes are only supported for ZVOLs in "dev" mode. In other cases atomicity can not be guarantied and so the command is blocked.
Diffstat (limited to 'sys/cam/ctl/ctl_backend_block.c')
-rw-r--r--sys/cam/ctl/ctl_backend_block.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/cam/ctl/ctl_backend_block.c b/sys/cam/ctl/ctl_backend_block.c
index 086458e..e6d0c0d 100644
--- a/sys/cam/ctl/ctl_backend_block.c
+++ b/sys/cam/ctl/ctl_backend_block.c
@@ -2006,6 +2006,9 @@ ctl_be_block_create(struct ctl_be_block_softc *softc, struct ctl_lun_req *req)
be_lun->ctl_be_lun.flags = CTL_LUN_FLAG_PRIMARY;
if (unmap)
be_lun->ctl_be_lun.flags |= CTL_LUN_FLAG_UNMAP;
+ if (be_lun->dispatch == ctl_be_block_dispatch_zvol)
+ be_lun->ctl_be_lun.atomicblock = CTLBLK_MAX_IO_SIZE /
+ be_lun->blocksize;
be_lun->ctl_be_lun.be_lun = be_lun;
be_lun->ctl_be_lun.blocksize = be_lun->blocksize;
be_lun->ctl_be_lun.pblockexp = be_lun->pblockexp;
OpenPOWER on IntegriCloud