On Tue, Jul 05, 2011 at 07:02:56AM +0200, Michael Weissenbacher wrote:
> Hi List!
> I've got a file here on which i cannot use xfs_bmap to determine it's
> fragments. All that i know is that it must have a really great number of
> them. It was the result of running a smbd without strict allocate. The
> machine itself has 8GiB of RAM and 10GiB of swap available, so that
> shouldn't be the problem. I guess this is some bug in xfs_bmap. Or is it
> a known limitation?
Sounds like your memory is fragmented. IIRC, bmap tries to map all
the extents in a single buffer, and that might cause problems for
files with large numbers of extents. ENOMEM can occur if an
internal buffer cannot be allocated to hold all the extents to be
mapped in one call.
Try using the "-n <num_extents>" option to reduce the number of
extents gathered per ioctl call and see if that makes the
issue go away.