From: Darrick J. Wong Date: Thu, 17 Oct 2019 02:35:26 +0000 (-0400) Subject: xfs_scrub: record disk LBA size X-Git-Tag: v5.3.0-rc2~68 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=20e10ad4b9dfa361e5c1039e89896694ec55a79c;p=thirdparty%2Fxfsprogs-dev.git xfs_scrub: record disk LBA size Remember the size (in bytes) of a logical block on the disk. We'll use this in subsequent patches to improve the ability of media scans to report on which files are corrupt. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/scrub/disk.c b/scrub/disk.c index dcdd5ba83..d2101cc6a 100644 --- a/scrub/disk.c +++ b/scrub/disk.c @@ -193,7 +193,6 @@ disk_open( #endif struct disk *disk; bool suspicious_disk = false; - int lba_sz; int error; disk = calloc(1, sizeof(struct disk)); @@ -205,10 +204,10 @@ disk_open( goto out_free; /* Try to get LBA size. */ - error = ioctl(disk->d_fd, BLKSSZGET, &lba_sz); + error = ioctl(disk->d_fd, BLKSSZGET, &disk->d_lbasize); if (error) - lba_sz = 512; - disk->d_lbalog = log2_roundup(lba_sz); + disk->d_lbasize = 512; + disk->d_lbalog = log2_roundup(disk->d_lbasize); /* Obtain disk's stat info. */ error = fstat(disk->d_fd, &disk->d_sb); diff --git a/scrub/disk.h b/scrub/disk.h index 74a26d980..36bfb8263 100644 --- a/scrub/disk.h +++ b/scrub/disk.h @@ -10,7 +10,8 @@ struct disk { struct stat d_sb; int d_fd; - int d_lbalog; + unsigned int d_lbalog; + unsigned int d_lbasize; /* bytes */ unsigned int d_flags; unsigned int d_blksize; /* bytes */ uint64_t d_size; /* bytes */