Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

nfsd: Check queue type before submitting a SCSI request

Since using scsi_req() is only allowed against request queues for
which struct scsi_request is the first member of their private
request data, refuse to submit SCSI commands against a queue for
which this is not the case.

References: commit 82ed4db499b8 ("block: split scsi_request out of struct request")
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: J. Bruce Fields <bfields@redhat.com>
Cc: Jeff Layton <jlayton@poochiereds.net>
Cc: Omar Sandoval <osandov@fb.com>
Cc: linux-nfs@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>

authored by

Bart Van Assche and committed by
Jens Axboe
30181faa 73d17701

+3
+3
fs/nfsd/blocklayout.c
··· 219 219 u8 *buf, *d, type, assoc; 220 220 int error; 221 221 222 + if (WARN_ON_ONCE(!blk_queue_scsi_passthrough(q))) 223 + return -EINVAL; 224 + 222 225 buf = kzalloc(bufflen, GFP_KERNEL); 223 226 if (!buf) 224 227 return -ENOMEM;