common/punch: handle bmap output for unaligned extents
authorEric Sandeen <sandeen@redhat.com>
Mon, 21 Dec 2015 07:40:18 +0000 (18:40 +1100)
committerDave Chinner <david@fromorbit.com>
Mon, 21 Dec 2015 07:40:18 +0000 (18:40 +1100)
xfs/242 fails if the mapping flags show unaligned extents;
fix up the regexp to allow this, we really only care about
the unwritten flag.

Signed-off-by: eric Sandeen <sandeen@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
common/punch

index d9b8426f7d1ecd9cbe3609559111c368d982973d..43f04c2dc3dca5bd8573abfd801f12e056189bac 100644 (file)
@@ -234,6 +234,11 @@ _filter_hole_fiemap()
        _coalesce_extents
 }
 
+#     10000 Unwritten preallocated extent
+#     01000 Doesn't begin on stripe unit
+#     00100 Doesn't end   on stripe unit
+#     00010 Doesn't begin on stripe width
+#     00001 Doesn't end   on stripe width
 _filter_bmap()
 {
        awk '
@@ -241,11 +246,11 @@ _filter_bmap()
                        print $1, $2, $3;
                        next;
                }
-               $7 ~ /10000/ {
+               $7 ~ /1[01][01][01][01]/ {
                        print $1, $2, "unwritten";
                        next;
                }
-               $7 ~ /00000/ {
+               $7 ~ /0[01][01][01][01]/ {
                        print $1, $2, "data"
                }' |
        _coalesce_extents