[PATCH 09/11] xfs_scrub: return bytes verified from a SCSI VERIFY command

Darrick J. Wong
2019-09-25T21:35:57Z

Since disk_scsi_verify and pread are interchangeably called from
disk_read_verify(), we must return the number of bytes verified (or -1)
just like what pread returns. This doesn't matter now due to bugs in
scrub, but we're about to fix those bugs.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
scrub/disk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scrub/disk.c b/scrub/disk.c
index d2101cc6..bf9c795a 100644
--- a/scrub/disk.c
+++ b/scrub/disk.c
@@ -144,7 +144,7 @@ disk_scsi_verify(
iohdr.timeout = 30000; /* 30s */

error = ioctl(disk->d_fd, SG_IO, &iohdr);
- if (error)
+ if (error < 0)
return error;

dbg_printf("VERIFY(16) fd %d lba %"PRIu64" len %"PRIu64" info %x "
@@ -163,7 +163,7 @@ disk_scsi_verify(
return -1;
}

- return error;
+ return blockcount << BBSHIFT;
}
#else
# define disk_scsi_verify(...) (ENOTTY)