On 6/20/13 1:09 PM, Josef Bacik wrote: > Btrfs has always failed shared/218 because of the way we allocate extents on > disk. The last part of 218 writes contiguously holey from the start of the file > forward, which for btrfs means we get 16 extents but they are physically > contigous. filefrag -v shows all 16 extents, but prints out that there is 1 > extent, because they are physically contiguous. I'd call that a filefrag bug but TBH filefrag has been so fragile, I don't mind just switching to xfs_io. > This isn't quite right and > makes the test fail. So instead of using filefrag use xfs_io -c fiemap which > will print the whole map and then get the count from there. With this patch > btrfs now passes the test, I also verified that ext4 and xfs still pass this > test. Thanks, Seems fine other than I think we need a: _require_xfs_io_fiemap somewhere; either in the tests that call _extent_count, or maybe just at the top of common/defrag, although that's a little bigger hammer. -Eric > Signed-off-by: Josef Bacik <jbacik@xxxxxxxxxxxx> > --- > common/defrag | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/common/defrag b/common/defrag > index f04fd42..a7e5488 100644 > --- a/common/defrag > +++ b/common/defrag > @@ -43,8 +43,8 @@ _require_defrag() > > _extent_count() > { > - $FILEFRAG_PROG $1 | awk '{print $2}' > - $FILEFRAG_PROG -v $1 >> $seqres.full 2>&1 > + $XFS_IO_PROG -c "fiemap" $1 | tail -n +2 | grep -v hole | wc -l > + $XFS_IO_PROG -c "fiemap" $1 >> $seqres.full 2>&1 > } > > # Defrag file, check it, and remove it. > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs