diff options
author | mav <mav@FreeBSD.org> | 2014-09-22 10:46:06 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2014-09-22 10:46:06 +0000 |
commit | 9e711a15d73e7f9e8992f45e4b5969b413680623 (patch) | |
tree | c43911231caef7302d71c0531a319bc6aca3e893 | |
parent | 2b799f4318e1953e1a387fecfa820d5b253dc6ec (diff) | |
download | FreeBSD-src-9e711a15d73e7f9e8992f45e4b5969b413680623.zip FreeBSD-src-9e711a15d73e7f9e8992f45e4b5969b413680623.tar.gz |
Deny ANCHOR flag set without UNMAP flag set in WRITE SAME commands.
-rw-r--r-- | sys/cam/ctl/ctl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 37e0339..39c0dc1 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5987,8 +5987,9 @@ ctl_write_same(struct ctl_scsiio *ctsio) break; /* NOTREACHED */ } - /* NDOB flag can be used only together with UNMAP */ - if ((byte2 & (SWS_NDOB | SWS_UNMAP)) == SWS_NDOB) { + /* NDOB and ANCHOR flags can be used only together with UNMAP */ + if ((byte2 & SWS_UNMAP) == 0 && + (byte2 & (SWS_NDOB | SWS_ANCHOR)) != 0) { ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 1, /*field*/ 1, /*bit_valid*/ 1, /*bit*/ 0); ctl_done((union ctl_io *)ctsio); |