2014-04-17 21:41:48

by Mark Fasheh

[permalink] [raw]
Subject: [PATCH] e2fsprogs/filefrag: print shared extent flag

Filefrag doesn't catch and print the shared extent flag. Add this for
users of filefrag on file systems with shared extents (such as btrfs).

Signed-off-by: Mark Fasheh <[email protected]>
---
lib/ext2fs/fiemap.h | 2 ++
misc/filefrag.c | 2 ++
2 files changed, 4 insertions(+)

diff --git a/lib/ext2fs/fiemap.h b/lib/ext2fs/fiemap.h
index 30bf555..895cd0b 100644
--- a/lib/ext2fs/fiemap.h
+++ b/lib/ext2fs/fiemap.h
@@ -64,5 +64,7 @@ struct fiemap {
#define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively
* support extents. Result
* merged for efficiency. */
+#define FIEMAP_EXTENT_SHARED 0x00002000 /* Space shared with other
+ * files. */

#endif /* _LINUX_FIEMAP_H */
diff --git a/misc/filefrag.c b/misc/filefrag.c
index a050a22..929a33b 100644
--- a/misc/filefrag.c
+++ b/misc/filefrag.c
@@ -165,6 +165,8 @@ static void print_extent_info(struct fiemap_extent *fm_extent, int cur_ex,
strcat(flags, "unwritten,");
if (fm_extent->fe_flags & FIEMAP_EXTENT_MERGED)
strcat(flags, "merged,");
+ if (fm_extent->fe_flags & FIEMAP_EXTENT_SHARED)
+ strcat(flags, "shared,");

if (fm_extent->fe_logical + fm_extent->fe_length >= (__u64) st->st_size)
strcat(flags, "eof,");
--
1.8.4



2014-04-27 00:24:05

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] e2fsprogs/filefrag: print shared extent flag

On Thu, Apr 17, 2014 at 02:41:46PM -0700, Mark Fasheh wrote:
> Filefrag doesn't catch and print the shared extent flag. Add this for
> users of filefrag on file systems with shared extents (such as btrfs).
>
> Signed-off-by: Mark Fasheh <[email protected]>

Thanks, applied.

- Ted