diff options
author | Theodore Ts'o <tytso@mit.edu> | 2019-08-11 16:32:41 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2019-08-11 16:32:41 -0400 |
commit | bb5835edcdf8bf78bbe51cff13e332c439bc0567 (patch) | |
tree | 74e9498c0cb0f42a3158d0a892181316e5a8a243 /fs/ext4/ext4.h | |
parent | 1ad3ea6e0a694b0486eb2cbe60378ad0fbf23642 (diff) |
ext4: add new ioctl EXT4_IOC_GET_ES_CACHE
For debugging reasons, it's useful to know the contents of the extent
cache. Since the extent cache contains much of what is in the fiemap
ioctl, use an fiemap-style interface to return this information.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r-- | fs/ext4/ext4.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index ee296797bcd2..e2d8ad27f4d1 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -652,6 +652,7 @@ enum { | |||
652 | /* ioctl codes 19--39 are reserved for fscrypt */ | 652 | /* ioctl codes 19--39 are reserved for fscrypt */ |
653 | #define EXT4_IOC_CLEAR_ES_CACHE _IO('f', 40) | 653 | #define EXT4_IOC_CLEAR_ES_CACHE _IO('f', 40) |
654 | #define EXT4_IOC_GETSTATE _IOW('f', 41, __u32) | 654 | #define EXT4_IOC_GETSTATE _IOW('f', 41, __u32) |
655 | #define EXT4_IOC_GET_ES_CACHE _IOWR('f', 42, struct fiemap) | ||
655 | 656 | ||
656 | #define EXT4_IOC_FSGETXATTR FS_IOC_FSGETXATTR | 657 | #define EXT4_IOC_FSGETXATTR FS_IOC_FSGETXATTR |
657 | #define EXT4_IOC_FSSETXATTR FS_IOC_FSSETXATTR | 658 | #define EXT4_IOC_FSSETXATTR FS_IOC_FSSETXATTR |
@@ -692,6 +693,12 @@ enum { | |||
692 | #define EXT4_IOC32_SETVERSION_OLD FS_IOC32_SETVERSION | 693 | #define EXT4_IOC32_SETVERSION_OLD FS_IOC32_SETVERSION |
693 | #endif | 694 | #endif |
694 | 695 | ||
696 | /* | ||
697 | * Returned by EXT4_IOC_GET_ES_CACHE as an additional possible flag. | ||
698 | * It indicates that the entry in extent status cache is for a hole. | ||
699 | */ | ||
700 | #define EXT4_FIEMAP_EXTENT_HOLE 0x08000000 | ||
701 | |||
695 | /* Max physical block we can address w/o extents */ | 702 | /* Max physical block we can address w/o extents */ |
696 | #define EXT4_MAX_BLOCK_FILE_PHYS 0xFFFFFFFF | 703 | #define EXT4_MAX_BLOCK_FILE_PHYS 0xFFFFFFFF |
697 | 704 | ||
@@ -3258,6 +3265,9 @@ extern int ext4_ext_check_inode(struct inode *inode); | |||
3258 | extern ext4_lblk_t ext4_ext_next_allocated_block(struct ext4_ext_path *path); | 3265 | extern ext4_lblk_t ext4_ext_next_allocated_block(struct ext4_ext_path *path); |
3259 | extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, | 3266 | extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, |
3260 | __u64 start, __u64 len); | 3267 | __u64 start, __u64 len); |
3268 | extern int ext4_get_es_cache(struct inode *inode, | ||
3269 | struct fiemap_extent_info *fieinfo, | ||
3270 | __u64 start, __u64 len); | ||
3261 | extern int ext4_ext_precache(struct inode *inode); | 3271 | extern int ext4_ext_precache(struct inode *inode); |
3262 | extern int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len); | 3272 | extern int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len); |
3263 | extern int ext4_insert_range(struct inode *inode, loff_t offset, loff_t len); | 3273 | extern int ext4_insert_range(struct inode *inode, loff_t offset, loff_t len); |