diff options
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r-- | fs/ext4/ext4.h | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 1554b15f91b..513004fc3d8 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -511,6 +511,14 @@ struct ext4_new_group_data { | |||
511 | __u32 free_blocks_count; | 511 | __u32 free_blocks_count; |
512 | }; | 512 | }; |
513 | 513 | ||
514 | /* Indexes used to index group tables in ext4_new_group_data */ | ||
515 | enum { | ||
516 | BLOCK_BITMAP = 0, /* block bitmap */ | ||
517 | INODE_BITMAP, /* inode bitmap */ | ||
518 | INODE_TABLE, /* inode tables */ | ||
519 | GROUP_TABLE_COUNT, | ||
520 | }; | ||
521 | |||
514 | /* | 522 | /* |
515 | * Flags used by ext4_map_blocks() | 523 | * Flags used by ext4_map_blocks() |
516 | */ | 524 | */ |
@@ -575,6 +583,7 @@ struct ext4_new_group_data { | |||
575 | /* note ioctl 11 reserved for filesystem-independent FIEMAP ioctl */ | 583 | /* note ioctl 11 reserved for filesystem-independent FIEMAP ioctl */ |
576 | #define EXT4_IOC_ALLOC_DA_BLKS _IO('f', 12) | 584 | #define EXT4_IOC_ALLOC_DA_BLKS _IO('f', 12) |
577 | #define EXT4_IOC_MOVE_EXT _IOWR('f', 15, struct move_extent) | 585 | #define EXT4_IOC_MOVE_EXT _IOWR('f', 15, struct move_extent) |
586 | #define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64) | ||
578 | 587 | ||
579 | #if defined(__KERNEL__) && defined(CONFIG_COMPAT) | 588 | #if defined(__KERNEL__) && defined(CONFIG_COMPAT) |
580 | /* | 589 | /* |
@@ -957,12 +966,13 @@ struct ext4_inode_info { | |||
957 | #define test_opt2(sb, opt) (EXT4_SB(sb)->s_mount_opt2 & \ | 966 | #define test_opt2(sb, opt) (EXT4_SB(sb)->s_mount_opt2 & \ |
958 | EXT4_MOUNT2_##opt) | 967 | EXT4_MOUNT2_##opt) |
959 | 968 | ||
960 | #define ext4_set_bit __test_and_set_bit_le | 969 | #define ext4_test_and_set_bit __test_and_set_bit_le |
970 | #define ext4_set_bit __set_bit_le | ||
961 | #define ext4_set_bit_atomic ext2_set_bit_atomic | 971 | #define ext4_set_bit_atomic ext2_set_bit_atomic |
962 | #define ext4_clear_bit __test_and_clear_bit_le | 972 | #define ext4_test_and_clear_bit __test_and_clear_bit_le |
973 | #define ext4_clear_bit __clear_bit_le | ||
963 | #define ext4_clear_bit_atomic ext2_clear_bit_atomic | 974 | #define ext4_clear_bit_atomic ext2_clear_bit_atomic |
964 | #define ext4_test_bit test_bit_le | 975 | #define ext4_test_bit test_bit_le |
965 | #define ext4_find_first_zero_bit find_first_zero_bit_le | ||
966 | #define ext4_find_next_zero_bit find_next_zero_bit_le | 976 | #define ext4_find_next_zero_bit find_next_zero_bit_le |
967 | #define ext4_find_next_bit find_next_bit_le | 977 | #define ext4_find_next_bit find_next_bit_le |
968 | 978 | ||
@@ -1397,6 +1407,7 @@ static inline void ext4_clear_state_flags(struct ext4_inode_info *ei) | |||
1397 | #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040 | 1407 | #define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040 |
1398 | #define EXT4_FEATURE_RO_COMPAT_QUOTA 0x0100 | 1408 | #define EXT4_FEATURE_RO_COMPAT_QUOTA 0x0100 |
1399 | #define EXT4_FEATURE_RO_COMPAT_BIGALLOC 0x0200 | 1409 | #define EXT4_FEATURE_RO_COMPAT_BIGALLOC 0x0200 |
1410 | #define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400 | ||
1400 | 1411 | ||
1401 | #define EXT4_FEATURE_INCOMPAT_COMPRESSION 0x0001 | 1412 | #define EXT4_FEATURE_INCOMPAT_COMPRESSION 0x0001 |
1402 | #define EXT4_FEATURE_INCOMPAT_FILETYPE 0x0002 | 1413 | #define EXT4_FEATURE_INCOMPAT_FILETYPE 0x0002 |
@@ -1409,6 +1420,8 @@ static inline void ext4_clear_state_flags(struct ext4_inode_info *ei) | |||
1409 | #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 | 1420 | #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 |
1410 | #define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400 /* EA in inode */ | 1421 | #define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400 /* EA in inode */ |
1411 | #define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000 /* data in dirent */ | 1422 | #define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000 /* data in dirent */ |
1423 | #define EXT4_FEATURE_INCOMPAT_INLINEDATA 0x2000 /* data in inode */ | ||
1424 | #define EXT4_FEATURE_INCOMPAT_LARGEDIR 0x4000 /* >2GB or 3-lvl htree */ | ||
1412 | 1425 | ||
1413 | #define EXT2_FEATURE_COMPAT_SUPP EXT4_FEATURE_COMPAT_EXT_ATTR | 1426 | #define EXT2_FEATURE_COMPAT_SUPP EXT4_FEATURE_COMPAT_EXT_ATTR |
1414 | #define EXT2_FEATURE_INCOMPAT_SUPP (EXT4_FEATURE_INCOMPAT_FILETYPE| \ | 1427 | #define EXT2_FEATURE_INCOMPAT_SUPP (EXT4_FEATURE_INCOMPAT_FILETYPE| \ |
@@ -1790,8 +1803,6 @@ extern void ext4_init_block_bitmap(struct super_block *sb, | |||
1790 | extern unsigned ext4_free_clusters_after_init(struct super_block *sb, | 1803 | extern unsigned ext4_free_clusters_after_init(struct super_block *sb, |
1791 | ext4_group_t block_group, | 1804 | ext4_group_t block_group, |
1792 | struct ext4_group_desc *gdp); | 1805 | struct ext4_group_desc *gdp); |
1793 | extern unsigned ext4_num_base_meta_clusters(struct super_block *sb, | ||
1794 | ext4_group_t block_group); | ||
1795 | extern unsigned ext4_num_overhead_clusters(struct super_block *sb, | 1806 | extern unsigned ext4_num_overhead_clusters(struct super_block *sb, |
1796 | ext4_group_t block_group, | 1807 | ext4_group_t block_group, |
1797 | struct ext4_group_desc *gdp); | 1808 | struct ext4_group_desc *gdp); |
@@ -1880,16 +1891,9 @@ extern int ext4_alloc_da_blocks(struct inode *inode); | |||
1880 | extern void ext4_set_aops(struct inode *inode); | 1891 | extern void ext4_set_aops(struct inode *inode); |
1881 | extern int ext4_writepage_trans_blocks(struct inode *); | 1892 | extern int ext4_writepage_trans_blocks(struct inode *); |
1882 | extern int ext4_chunk_trans_blocks(struct inode *, int nrblocks); | 1893 | extern int ext4_chunk_trans_blocks(struct inode *, int nrblocks); |
1883 | extern int ext4_block_truncate_page(handle_t *handle, | ||
1884 | struct address_space *mapping, loff_t from); | ||
1885 | extern int ext4_block_zero_page_range(handle_t *handle, | ||
1886 | struct address_space *mapping, loff_t from, loff_t length); | ||
1887 | extern int ext4_discard_partial_page_buffers(handle_t *handle, | 1894 | extern int ext4_discard_partial_page_buffers(handle_t *handle, |
1888 | struct address_space *mapping, loff_t from, | 1895 | struct address_space *mapping, loff_t from, |
1889 | loff_t length, int flags); | 1896 | loff_t length, int flags); |
1890 | extern int ext4_discard_partial_page_buffers_no_lock(handle_t *handle, | ||
1891 | struct inode *inode, struct page *page, loff_t from, | ||
1892 | loff_t length, int flags); | ||
1893 | extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); | 1897 | extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); |
1894 | extern qsize_t *ext4_get_reserved_space(struct inode *inode); | 1898 | extern qsize_t *ext4_get_reserved_space(struct inode *inode); |
1895 | extern void ext4_da_update_reserve_space(struct inode *inode, | 1899 | extern void ext4_da_update_reserve_space(struct inode *inode, |
@@ -1924,6 +1928,7 @@ extern int ext4_group_add(struct super_block *sb, | |||
1924 | extern int ext4_group_extend(struct super_block *sb, | 1928 | extern int ext4_group_extend(struct super_block *sb, |
1925 | struct ext4_super_block *es, | 1929 | struct ext4_super_block *es, |
1926 | ext4_fsblk_t n_blocks_count); | 1930 | ext4_fsblk_t n_blocks_count); |
1931 | extern int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count); | ||
1927 | 1932 | ||
1928 | /* super.c */ | 1933 | /* super.c */ |
1929 | extern void *ext4_kvmalloc(size_t size, gfp_t flags); | 1934 | extern void *ext4_kvmalloc(size_t size, gfp_t flags); |