Re: [PATCH v2 05/10] xfs: fix error handling in xfs_bulkstat

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

 



On Thu, Apr 24, 2014 at 11:48:15PM -0700, Christoph Hellwig wrote:
> > Moreover, this fix also get rid of the redundant user buffer count
> > pre-checkups as it has already been validated in upper callers.
> 
> > -	if (!ubcountp || *ubcountp <= 0) {
> > -		return EINVAL;
> > -	}
> 
> Probably better to have this as a separate patch.
> 
> > -			/*
> > -			 * Loop as long as we're unable to read the
> > -			 * inode btree.
> > -			 */
> > -			while (error) {
> > -				agino += XFS_INODES_PER_CHUNK;
> > -				if (XFS_AGINO_TO_AGBNO(mp, agino) >=
> > -						be32_to_cpu(agi->agi_length))
> > -					break;
> > -				error = xfs_inobt_lookup(cur, agino,
> > -							 XFS_LOOKUP_GE, &tmp);
> > -				cond_resched();
> > -			}
> 
> This code goes back to 1995, but I still can't see how it would make
> sense.  I think we should get rid of this, but I'd also love to have
> Dave and Eric double check it as well.

I can't see it makes much sense, except for handling IO errors
that occur during something like a path failover where a retry would
then succeed. However, I think that we'd do better for userspace to
handle this problem - a short bulkstat followed by userspace retry
rather than a potential endless loop in the kernel is a much better
way to handle the problem...

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux