nvmet: better data length validation
Currently the NVMe target stores the expexted data length in req->data_len and uses that for data transfer decisions, but that does not take the actual transfer length in the SGLs into account. So this adds a new transfer_len field, into which the transport drivers store the actual transfer length. We then check the two match before actually executing the command. The FC transport driver already had such a field, which is removed in favour of the common one. Signed-off-by:Christoph Hellwig <hch@lst.de> Reviewed-by:
Sagi Grimberg <sagi@grimberg.me> Signed-off-by:
Christoph Hellwig <hch@lst.de> Signed-off-by:
Jens Axboe <axboe@kernel.dk>
Showing
- drivers/nvme/target/core.c 10 additions, 0 deletionsdrivers/nvme/target/core.c
- drivers/nvme/target/fc.c 12 additions, 20 deletionsdrivers/nvme/target/fc.c
- drivers/nvme/target/loop.c 2 additions, 1 deletiondrivers/nvme/target/loop.c
- drivers/nvme/target/nvmet.h 4 additions, 0 deletionsdrivers/nvme/target/nvmet.h
- drivers/nvme/target/rdma.c 6 additions, 4 deletionsdrivers/nvme/target/rdma.c
Loading
Please register or sign in to comment