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