nvme_disk: Error check after do_nvme_io_request.

Fixes partial transfers being reported as larger than they actually were.
This commit is contained in:
Augustin Cavalier
2020-05-19 00:28:18 -04:00
parent 4d2de4ea40
commit 16a59954e7
@@ -734,7 +734,7 @@ nvme_disk_io(void* cookie, io_request* request)
}
int32 remaining = nvme_request.iovec_count;
while (remaining > 0 && status == B_OK) {
while (remaining > 0) {
nvme_request.iovec_count = min_c(remaining,
NVME_MAX_SGL_DESCRIPTORS / 2);
@@ -743,6 +743,8 @@ nvme_disk_io(void* cookie, io_request* request)
nvme_request.lba_count += (nvme_request.iovecs[i].size / block_size);
status = do_nvme_io_request(handle->info, &nvme_request);
if (status != B_OK)
break;
nvme_request.iovecs += nvme_request.iovec_count;
remaining -= nvme_request.iovec_count;