Re: [PATCH v4 2/2] btrfs-progs: cmds: Add subcommand that dumps file extents
From: Sidong Yang <hidden>
Date: 2021-08-20 15:27:03
On Fri, Aug 20, 2021 at 06:16:18AM +0800, Qu Wenruo wrote:
On 2021/8/19 下午11:27, Sidong Yang wrote:quoted
On Thu, Aug 19, 2021 at 02:05:52PM +0800, Qu Wenruo wrote:quoted
On 2021/8/19 下午2:03, Qu Wenruo wrote:quoted
On 2021/8/18 上午8:38, Sidong Yang wrote:quoted
On Tue, Aug 17, 2021 at 03:30:22PM +0200, David Sterba wrote:quoted
On Sun, Jul 18, 2021 at 06:46:01AM +0000, Sidong Yang wrote:quoted
This patch adds an subcommand in inspect-internal. It dumps file extents of the file that user provided. It helps to show the internal information about file extents comprise the file.Do you have an example of the output? That's the most interesting part. Thanks.Thanks for reply. This is an example of the output below. # ./btrfs inspect-internal dump-file-extent /mnt/test1 type = regular, start = 2097152, len = 3227648, disk_bytenr = 0, disk_num_bytes = 0, offset = 0, compression = none type = regular, start = 5324800, len = 16728064, disk_bytenr = 0, disk_num_bytes = 0, offset = 0, compression = none type = regular, start = 22052864, len = 8486912, disk_bytenr = 0, disk_num_bytes = 0, offset = 0, compression = none type = regular, start = 30572544, len = 36540416, disk_bytenr = 0, disk_num_bytes = 0, offset = 0, compression = none type = regular, start = 67112960, len = 5299630080, disk_bytenr = 0, disk_num_bytes = 0, offset = 0, compression = noneCould you give an example which includes both real (non-hole) extents and real extents (better to include regular, compressed, preallocated and inline).Tons of typos... I mean to include both holes (like the existing example) and non-holes extents...Sorry, I had no idea about holes. But I found some test code in xfstests. It helpes me to make hole in file. xfs_io -c "fpunch 96K 32K" /mnt/a/foobar xfs_io -c "fpunch 64K 128K" /mnt/a/foobar and the example is below. # ./btrfs inspect dump-file-extent /mnt/a/foobar type = regular, start = 0, len = 98304, disk_bytenr = 21651456, disk_num_bytes = 4096, offset = 0, compression = zstd type = regular, start = 98304, len = 32768, disk_bytenr = 0, disk_num_bytes = 0, offset = 0, compression = none I'm afaid that I understand your request correctly. Is it what you want?This example is much better. But still, for holes, things like disk_bytenr/disk_num_bytes/offset/compression makes no sense and can be skipped.
Okay. If disk_bytenr is zero, other information after this would be skipped in next version.
Furthermore, for hole/prealloc they need extra type other than "regular"
For now, It already has prealloc type. but no hole type. All the types are inline/prealloc/regular/hole? If so, disk_bytenr should be checked before print it's type. Thanks, Sidong
Thanks, Ququoted
quoted
quoted
Currently the output only contains holes, and for holes, a lot of members makes no sense, like disk_bytenr/disk_num_bytes/offset (even it can be non-zero) and compression. Thanks, Ququoted
Thanks, Sidong