Re: [PATCH 4/6] xfs_scrub: handle totally empty inode chunks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/9/18 5:45 PM, Darrick J. Wong wrote:
From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>

We try to load a single inobt record with each FSINUMBERS call.  If the
chunk is totally empty (which can happen when there are more than one
inobt record per block) we should skip to the next INUMBERS call since
there are no inodes to bulkstat.

Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
---
  scrub/inodes.c |    6 ++++++
  1 file changed, 6 insertions(+)


diff --git a/scrub/inodes.c b/scrub/inodes.c
index 693f21ec..442a5978 100644
--- a/scrub/inodes.c
+++ b/scrub/inodes.c
@@ -139,6 +139,12 @@ xfs_iterate_inodes_range(
  		/* Load the inodes. */
  		ino = inogrp.xi_startino - 1;
  		bulkreq.icount = inogrp.xi_alloccount;
+		/*
+		 * We can have totally empty inode chunks on filesystems where
+		 * there are more than 64 inodes per block.  Skip these.
+		 */
+		if (inogrp.xi_alloccount == 0)
+			goto igrp_retry;
  		error = ioctl(ctx->mnt_fd, XFS_IOC_FSBULKSTAT, &bulkreq);
  		if (error)
  			str_info(ctx, descr, "%s", strerror_r(errno,


Looks ok to me.

Reviewed-by: Allison Henderson <allison.henderson@xxxxxxxxxx>



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux