From 6a14c51d612184f2c09c5b4148abb6afbb2e1fb0 Mon Sep 17 00:00:00 2001 From: Mark Fasheh Date: Thu, 17 Apr 2014 14:31:56 -0700 Subject: 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 --- 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