On Sun, Oct 09, 2011 at 07:52:40PM -0400, Christoph Hellwig wrote:
> On Mon, Oct 10, 2011 at 10:11:46AM +1100, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@xxxxxxxxxx>
> > Because repair uses direct IO, it cannot do IO smaller than a sector
> > on the underlying device. When repairing a filesystem image, the
> > filesystem hosting the image may have a sector size larger than the
> > sector size of the image, and so single image sector reads and
> > writes will fail.
> Does it? Given that the loop driver uses buffered I/O that would be
> unexpected behaviour. I'll try to reproduce it as soon as my 4k
> disk is available again.
My 3TB, RAID6 based image storage filesystem has a 4k sector size,
and I can't run xfs_repair on an image file that has smaller sector
sizes than 4k without this mod. In that case, xfs_repair is doing
direct IO on a file, not a device, and the file is on the 4k sector
sized filesytem. I've been carrying this patch for a while.
So it's definitely a real problem.