_coalesce_extents()
{
- awk -F: '
+ block_size=$1
+
+ [[ -z $block_size ]] && block_size=512
+
+ awk -v block_size="$block_size" -F: '
{
range = $2;
type = $3;
if (type != prev_type) {
if (prev_type != "")
- printf("%u]:%s\n", low - 1, prev_type);
- printf("%u: [%u..", out_count++, low);
+ printf("%u]:%s\n", (low * 512 / block_size) - 1,
+ prev_type);
+ printf("%u: [%u..", out_count++,
+ (low * 512) / block_size);
prev_type = type;
}
}
END {
if (prev_type != "")
- printf("%u]:%s\n", high, prev_type);
+ printf("%u]:%s\n", ((high + 1) * 512 / block_size) - 1,
+ prev_type);
}'
}
_filter_fiemap()
{
+ block_size=$1
+
$AWK_PROG '
$3 ~ /hole/ {
print $1, $2, $3;
$5 ~ /0x[[:xdigit:]]+/ {
print $1, $2, "data";
}' |
- _coalesce_extents
+ _coalesce_extents $block_size
}
_filter_fiemap_flags()