From waddlesplash <waddlesplash@xxxxxxxxx>:
waddlesplash has uploaded this change for review. (
https://review.haiku-os.org/c/haiku/+/2742 ;)
Change subject: nvme_disk: Error check after do_nvme_io_request.
......................................................................
nvme_disk: Error check after do_nvme_io_request.
Fixes partial transfers being reported as larger than they actually were.
---
M src/add-ons/kernel/drivers/disk/nvme/nvme_disk.cpp
1 file changed, 3 insertions(+), 1 deletion(-)
git pull ssh://git.haiku-os.org:22/haiku refs/changes/42/2742/1
diff --git a/src/add-ons/kernel/drivers/disk/nvme/nvme_disk.cpp
b/src/add-ons/kernel/drivers/disk/nvme/nvme_disk.cpp
index b37404e..99d79c9 100644
--- a/src/add-ons/kernel/drivers/disk/nvme/nvme_disk.cpp
+++ b/src/add-ons/kernel/drivers/disk/nvme/nvme_disk.cpp
@@ -734,7 +734,7 @@
}
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_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;
--
To view, visit https://review.haiku-os.org/c/haiku/+/2742
To unsubscribe, or for help writing mail filters, visit
https://review.haiku-os.org/settings
Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I1346a084b3c915c77de5989880f96d33d96ff560
Gerrit-Change-Number: 2742
Gerrit-PatchSet: 1
Gerrit-Owner: waddlesplash <waddlesplash@xxxxxxxxx>
Gerrit-MessageType: newchange