mirror of
https://github.com/versity/scoutfs.git
synced 2025-12-23 05:25:18 +00:00
There's filefrag already, and that works, but, it's output is very inconsistent between various OS release versions, and it has already meant that we'd needed to adjust tests to account for these little but insignificant changes. A lot more work than useful. It's even more changed in el9. This adds `scoutfs get-fiemap FILE` and prints out block extent info with flags that we care about as an abbreviated letter: U for Unwritten, L for Last, and O for Unknown (as in, "offline"). The -P/--physical and -L/--logical options turn off logical or physical offset display, in case you only want to see the offsets in either units. You can pass -b/--byte to display offsets and lengths in byte values. The block size will then be obtained from fstat() of the queried file (4096 for scoutfs). I've removed all uses of filefrag from our scoutfs tests. Xfstests still calls it but their internal diff takes care of that issue. Where needed and appropriate, the tests are adjusted so that the output of `scoutfs get-fiemap` is as close as it can to what it used to be, so that reading the test results allows the quick view of what might have been going wrong. There are some output strings I have not bothered to update because there's no real value to updating every output string to match, and we just adjust the golden file accordingly. Signed-off-by: Auke Kok <auke.kok@versity.com>
331 lines
5.0 KiB
Plaintext
331 lines
5.0 KiB
Plaintext
== initial writes smaller than prealloc grow to prealloc size
|
|
/mnt/test/test/data-prealloc/file-1: extents: 7
|
|
/mnt/test/test/data-prealloc/file-2: extents: 7
|
|
== larger files get full prealloc extents
|
|
/mnt/test/test/data-prealloc/file-1: extents: 9
|
|
/mnt/test/test/data-prealloc/file-2: extents: 9
|
|
== non-streaming writes with contig have per-block extents
|
|
/mnt/test/test/data-prealloc/file-1: extents: 32
|
|
/mnt/test/test/data-prealloc/file-2: extents: 32
|
|
== any writes to region prealloc get full extents
|
|
/mnt/test/test/data-prealloc/file-1: extents: 4
|
|
/mnt/test/test/data-prealloc/file-2: extents: 4
|
|
/mnt/test/test/data-prealloc/file-1: extents: 4
|
|
/mnt/test/test/data-prealloc/file-2: extents: 4
|
|
== streaming offline writes get full extents either way
|
|
/mnt/test/test/data-prealloc/file-1: extents: 4
|
|
/mnt/test/test/data-prealloc/file-2: extents: 4
|
|
/mnt/test/test/data-prealloc/file-1: extents: 4
|
|
/mnt/test/test/data-prealloc/file-2: extents: 4
|
|
== goofy preallocation amounts work
|
|
/mnt/test/test/data-prealloc/file-1: extents: 6
|
|
/mnt/test/test/data-prealloc/file-2: extents: 6
|
|
/mnt/test/test/data-prealloc/file-1: extents: 6
|
|
/mnt/test/test/data-prealloc/file-2: extents: 6
|
|
/mnt/test/test/data-prealloc/file-1: extents: 3
|
|
/mnt/test/test/data-prealloc/file-2: extents: 3
|
|
== block writes into region allocs hole
|
|
wrote blk 24
|
|
wrote blk 32
|
|
wrote blk 40
|
|
wrote blk 55
|
|
wrote blk 63
|
|
wrote blk 71
|
|
wrote blk 72
|
|
wrote blk 79
|
|
wrote blk 80
|
|
wrote blk 87
|
|
wrote blk 88
|
|
wrote blk 95
|
|
before:
|
|
24.. 1:
|
|
32.. 1:
|
|
40.. 1:
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 0 at pos 0
|
|
wrote blk 0
|
|
0.. 1:
|
|
1.. 7: unwritten
|
|
24.. 1:
|
|
32.. 1:
|
|
40.. 1:
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 0 at pos 1
|
|
wrote blk 15
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
24.. 1:
|
|
32.. 1:
|
|
40.. 1:
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 0 at pos 2
|
|
wrote blk 19
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
32.. 1:
|
|
40.. 1:
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 1 at pos 0
|
|
wrote blk 25
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
40.. 1:
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 1 at pos 1
|
|
wrote blk 39
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 1 at pos 2
|
|
wrote blk 44
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 2 at pos 0
|
|
wrote blk 48
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
48.. 1:
|
|
49.. 6: unwritten
|
|
55.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 2 at pos 1
|
|
wrote blk 62
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
48.. 1:
|
|
49.. 6: unwritten
|
|
55.. 1:
|
|
56.. 6: unwritten
|
|
62.. 1:
|
|
63.. 1:
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 2 at pos 2
|
|
wrote blk 67
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
48.. 1:
|
|
49.. 6: unwritten
|
|
55.. 1:
|
|
56.. 6: unwritten
|
|
62.. 1:
|
|
63.. 1:
|
|
64.. 3: unwritten
|
|
67.. 1:
|
|
68.. 3: unwritten
|
|
71.. 2:
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 3 at pos 0
|
|
wrote blk 73
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
48.. 1:
|
|
49.. 6: unwritten
|
|
55.. 1:
|
|
56.. 6: unwritten
|
|
62.. 1:
|
|
63.. 1:
|
|
64.. 3: unwritten
|
|
67.. 1:
|
|
68.. 3: unwritten
|
|
71.. 2:
|
|
73.. 1:
|
|
74.. 5: unwritten
|
|
79.. 2:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 3 at pos 1
|
|
wrote blk 86
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
48.. 1:
|
|
49.. 6: unwritten
|
|
55.. 1:
|
|
56.. 6: unwritten
|
|
62.. 1:
|
|
63.. 1:
|
|
64.. 3: unwritten
|
|
67.. 1:
|
|
68.. 3: unwritten
|
|
71.. 2:
|
|
73.. 1:
|
|
74.. 5: unwritten
|
|
79.. 2:
|
|
86.. 1:
|
|
87.. 2:
|
|
95.. 1: eof
|
|
writing into existing 3 at pos 2
|
|
wrote blk 92
|
|
0.. 1:
|
|
1.. 14: unwritten
|
|
15.. 1:
|
|
16.. 3: unwritten
|
|
19.. 1:
|
|
20.. 4: unwritten
|
|
24.. 1:
|
|
25.. 1:
|
|
26.. 6: unwritten
|
|
32.. 1:
|
|
39.. 1:
|
|
40.. 1:
|
|
44.. 1:
|
|
45.. 3: unwritten
|
|
48.. 1:
|
|
49.. 6: unwritten
|
|
55.. 1:
|
|
56.. 6: unwritten
|
|
62.. 1:
|
|
63.. 1:
|
|
64.. 3: unwritten
|
|
67.. 1:
|
|
68.. 3: unwritten
|
|
71.. 2:
|
|
73.. 1:
|
|
74.. 5: unwritten
|
|
79.. 2:
|
|
86.. 1:
|
|
87.. 2:
|
|
92.. 1:
|
|
93.. 2: unwritten
|
|
95.. 1: eof
|