ext4.h (8ffc57093bb1c270050f4229b5afd38ee8cef2bd) ext4.h (331573febb6a224bc50322e3670da326cb7f4cfc)
1/*
2 * ext4.h
3 *
4 * Copyright (C) 1992, 1993, 1994, 1995
5 * Remy Card (card@masi.ibp.fr)
6 * Laboratoire MASI - Institut Blaise Pascal
7 * Universite Pierre et Marie Curie (Paris VI)
8 *

--- 76 unchanged lines hidden (view full) ---

85typedef unsigned long long ext4_fsblk_t;
86
87/* data type for file logical block number */
88typedef __u32 ext4_lblk_t;
89
90/* data type for block group number */
91typedef unsigned int ext4_group_t;
92
1/*
2 * ext4.h
3 *
4 * Copyright (C) 1992, 1993, 1994, 1995
5 * Remy Card (card@masi.ibp.fr)
6 * Laboratoire MASI - Institut Blaise Pascal
7 * Universite Pierre et Marie Curie (Paris VI)
8 *

--- 76 unchanged lines hidden (view full) ---

85typedef unsigned long long ext4_fsblk_t;
86
87/* data type for file logical block number */
88typedef __u32 ext4_lblk_t;
89
90/* data type for block group number */
91typedef unsigned int ext4_group_t;
92
93enum SHIFT_DIRECTION {
94 SHIFT_LEFT = 0,
95 SHIFT_RIGHT,
96};
97
93/*
94 * Flags used in mballoc's allocation_context flags field.
95 *
96 * Also used to show what's going on for debugging purposes when the
97 * flag field is exported via the traceport interface
98 */
99
100/* prefer goal again. length */

--- 805 unchanged lines hidden (view full) ---

906 unsigned int i_reserved_data_blocks;
907 unsigned int i_reserved_meta_blocks;
908 unsigned int i_allocated_meta_blocks;
909 ext4_lblk_t i_da_metadata_calc_last_lblock;
910 int i_da_metadata_calc_len;
911
912 /* on-disk additional length */
913 __u16 i_extra_isize;
98/*
99 * Flags used in mballoc's allocation_context flags field.
100 *
101 * Also used to show what's going on for debugging purposes when the
102 * flag field is exported via the traceport interface
103 */
104
105/* prefer goal again. length */

--- 805 unchanged lines hidden (view full) ---

911 unsigned int i_reserved_data_blocks;
912 unsigned int i_reserved_meta_blocks;
913 unsigned int i_allocated_meta_blocks;
914 ext4_lblk_t i_da_metadata_calc_last_lblock;
915 int i_da_metadata_calc_len;
916
917 /* on-disk additional length */
918 __u16 i_extra_isize;
914 char i_crypt_policy_flags;
915
916 /* Indicate the inline data space. */
917 u16 i_inline_off;
918 u16 i_inline_size;
919
920#ifdef CONFIG_QUOTA
921 /* quota space reservation, managed internally by quota code */
922 qsize_t i_reserved_quota;

--- 27 unchanged lines hidden (view full) ---

950 struct dquot *i_dquot[MAXQUOTAS];
951#endif
952
953 /* Precomputed uuid+inum+igen checksum for seeding inode checksums */
954 __u32 i_csum_seed;
955
956#ifdef CONFIG_EXT4_FS_ENCRYPTION
957 /* Encryption params */
919
920 /* Indicate the inline data space. */
921 u16 i_inline_off;
922 u16 i_inline_size;
923
924#ifdef CONFIG_QUOTA
925 /* quota space reservation, managed internally by quota code */
926 qsize_t i_reserved_quota;

--- 27 unchanged lines hidden (view full) ---

954 struct dquot *i_dquot[MAXQUOTAS];
955#endif
956
957 /* Precomputed uuid+inum+igen checksum for seeding inode checksums */
958 __u32 i_csum_seed;
959
960#ifdef CONFIG_EXT4_FS_ENCRYPTION
961 /* Encryption params */
958 struct ext4_encryption_key i_encryption_key;
962 struct ext4_crypt_info *i_crypt_info;
959#endif
960};
961
962/*
963 * File system states
964 */
965#define EXT4_VALID_FS 0x0001 /* Unmounted cleanly */
966#define EXT4_ERROR_FS 0x0002 /* Errors detected */

--- 402 unchanged lines hidden (view full) ---

1369 struct ext4_es_stats s_es_stats;
1370 struct mb_cache *s_mb_cache;
1371 spinlock_t s_es_lock ____cacheline_aligned_in_smp;
1372
1373 /* Ratelimit ext4 messages. */
1374 struct ratelimit_state s_err_ratelimit_state;
1375 struct ratelimit_state s_warning_ratelimit_state;
1376 struct ratelimit_state s_msg_ratelimit_state;
963#endif
964};
965
966/*
967 * File system states
968 */
969#define EXT4_VALID_FS 0x0001 /* Unmounted cleanly */
970#define EXT4_ERROR_FS 0x0002 /* Errors detected */

--- 402 unchanged lines hidden (view full) ---

1373 struct ext4_es_stats s_es_stats;
1374 struct mb_cache *s_mb_cache;
1375 spinlock_t s_es_lock ____cacheline_aligned_in_smp;
1376
1377 /* Ratelimit ext4 messages. */
1378 struct ratelimit_state s_err_ratelimit_state;
1379 struct ratelimit_state s_warning_ratelimit_state;
1380 struct ratelimit_state s_msg_ratelimit_state;
1377
1378#ifdef CONFIG_EXT4_FS_ENCRYPTION
1379 /* Encryption */
1380 uint32_t s_file_encryption_mode;
1381 uint32_t s_dir_encryption_mode;
1382#endif
1383};
1384
1385static inline struct ext4_sb_info *EXT4_SB(struct super_block *sb)
1386{
1387 return sb->s_fs_info;
1388}
1389static inline struct ext4_inode_info *EXT4_I(struct inode *inode)
1390{

--- 442 unchanged lines hidden (view full) ---

1833#define EXT4_HTREE_EOF_64BIT ((1ULL << (64 - 1)) - 1)
1834
1835
1836/*
1837 * Control parameters used by ext4_htree_next_block
1838 */
1839#define HASH_NB_ALWAYS 1
1840
1381};
1382
1383static inline struct ext4_sb_info *EXT4_SB(struct super_block *sb)
1384{
1385 return sb->s_fs_info;
1386}
1387static inline struct ext4_inode_info *EXT4_I(struct inode *inode)
1388{

--- 442 unchanged lines hidden (view full) ---

1831#define EXT4_HTREE_EOF_64BIT ((1ULL << (64 - 1)) - 1)
1832
1833
1834/*
1835 * Control parameters used by ext4_htree_next_block
1836 */
1837#define HASH_NB_ALWAYS 1
1838
1839struct ext4_filename {
1840 const struct qstr *usr_fname;
1841 struct ext4_str disk_name;
1842 struct dx_hash_info hinfo;
1843#ifdef CONFIG_EXT4_FS_ENCRYPTION
1844 struct ext4_str crypto_buf;
1845#endif
1846};
1841
1847
1848#define fname_name(p) ((p)->disk_name.name)
1849#define fname_len(p) ((p)->disk_name.len)
1850
1842/*
1843 * Describe an inode's exact location on disk and in memory
1844 */
1845struct ext4_iloc
1846{
1847 struct buffer_head *bh;
1848 unsigned long offset;
1849 ext4_group_t block_group;

--- 199 unchanged lines hidden (view full) ---

2049int ext4_inherit_context(struct inode *parent, struct inode *child);
2050void ext4_to_hex(char *dst, char *src, size_t src_size);
2051int ext4_process_policy(const struct ext4_encryption_policy *policy,
2052 struct inode *inode);
2053int ext4_get_policy(struct inode *inode,
2054 struct ext4_encryption_policy *policy);
2055
2056/* crypto.c */
1851/*
1852 * Describe an inode's exact location on disk and in memory
1853 */
1854struct ext4_iloc
1855{
1856 struct buffer_head *bh;
1857 unsigned long offset;
1858 ext4_group_t block_group;

--- 199 unchanged lines hidden (view full) ---

2058int ext4_inherit_context(struct inode *parent, struct inode *child);
2059void ext4_to_hex(char *dst, char *src, size_t src_size);
2060int ext4_process_policy(const struct ext4_encryption_policy *policy,
2061 struct inode *inode);
2062int ext4_get_policy(struct inode *inode,
2063 struct ext4_encryption_policy *policy);
2064
2065/* crypto.c */
2066extern struct kmem_cache *ext4_crypt_info_cachep;
2057bool ext4_valid_contents_enc_mode(uint32_t mode);
2058uint32_t ext4_validate_encryption_key_size(uint32_t mode, uint32_t size);
2059extern struct workqueue_struct *ext4_read_workqueue;
2060struct ext4_crypto_ctx *ext4_get_crypto_ctx(struct inode *inode);
2061void ext4_release_crypto_ctx(struct ext4_crypto_ctx *ctx);
2062void ext4_restore_control_page(struct page *data_page);
2063struct page *ext4_encrypt(struct inode *inode,
2064 struct page *plaintext_page);

--- 15 unchanged lines hidden (view full) ---

2080{
2081 return 0;
2082}
2083#endif
2084
2085/* crypto_fname.c */
2086bool ext4_valid_filenames_enc_mode(uint32_t mode);
2087u32 ext4_fname_crypto_round_up(u32 size, u32 blksize);
2067bool ext4_valid_contents_enc_mode(uint32_t mode);
2068uint32_t ext4_validate_encryption_key_size(uint32_t mode, uint32_t size);
2069extern struct workqueue_struct *ext4_read_workqueue;
2070struct ext4_crypto_ctx *ext4_get_crypto_ctx(struct inode *inode);
2071void ext4_release_crypto_ctx(struct ext4_crypto_ctx *ctx);
2072void ext4_restore_control_page(struct page *data_page);
2073struct page *ext4_encrypt(struct inode *inode,
2074 struct page *plaintext_page);

--- 15 unchanged lines hidden (view full) ---

2090{
2091 return 0;
2092}
2093#endif
2094
2095/* crypto_fname.c */
2096bool ext4_valid_filenames_enc_mode(uint32_t mode);
2097u32 ext4_fname_crypto_round_up(u32 size, u32 blksize);
2088int ext4_fname_crypto_alloc_buffer(struct ext4_fname_crypto_ctx *ctx,
2098unsigned ext4_fname_encrypted_size(struct inode *inode, u32 ilen);
2099int ext4_fname_crypto_alloc_buffer(struct inode *inode,
2089 u32 ilen, struct ext4_str *crypto_str);
2100 u32 ilen, struct ext4_str *crypto_str);
2090int _ext4_fname_disk_to_usr(struct ext4_fname_crypto_ctx *ctx,
2101int _ext4_fname_disk_to_usr(struct inode *inode,
2091 struct dx_hash_info *hinfo,
2092 const struct ext4_str *iname,
2093 struct ext4_str *oname);
2102 struct dx_hash_info *hinfo,
2103 const struct ext4_str *iname,
2104 struct ext4_str *oname);
2094int ext4_fname_disk_to_usr(struct ext4_fname_crypto_ctx *ctx,
2105int ext4_fname_disk_to_usr(struct inode *inode,
2095 struct dx_hash_info *hinfo,
2096 const struct ext4_dir_entry_2 *de,
2097 struct ext4_str *oname);
2106 struct dx_hash_info *hinfo,
2107 const struct ext4_dir_entry_2 *de,
2108 struct ext4_str *oname);
2098int ext4_fname_usr_to_disk(struct ext4_fname_crypto_ctx *ctx,
2109int ext4_fname_usr_to_disk(struct inode *inode,
2099 const struct qstr *iname,
2100 struct ext4_str *oname);
2110 const struct qstr *iname,
2111 struct ext4_str *oname);
2101int ext4_fname_usr_to_hash(struct ext4_fname_crypto_ctx *ctx,
2102 const struct qstr *iname,
2103 struct dx_hash_info *hinfo);
2104int ext4_fname_crypto_namelen_on_disk(struct ext4_fname_crypto_ctx *ctx,
2105 u32 namelen);
2106int ext4_fname_match(struct ext4_fname_crypto_ctx *ctx, struct ext4_str *cstr,
2107 int len, const char * const name,
2108 struct ext4_dir_entry_2 *de);
2109
2110
2111#ifdef CONFIG_EXT4_FS_ENCRYPTION
2112#ifdef CONFIG_EXT4_FS_ENCRYPTION
2112void ext4_put_fname_crypto_ctx(struct ext4_fname_crypto_ctx **ctx);
2113struct ext4_fname_crypto_ctx *ext4_get_fname_crypto_ctx(struct inode *inode,
2114 u32 max_len);
2115void ext4_fname_crypto_free_buffer(struct ext4_str *crypto_str);
2113void ext4_fname_crypto_free_buffer(struct ext4_str *crypto_str);
2114int ext4_fname_setup_filename(struct inode *dir, const struct qstr *iname,
2115 int lookup, struct ext4_filename *fname);
2116void ext4_fname_free_filename(struct ext4_filename *fname);
2116#else
2117static inline
2117#else
2118static inline
2118void ext4_put_fname_crypto_ctx(struct ext4_fname_crypto_ctx **ctx) { }
2119static inline
2120struct ext4_fname_crypto_ctx *ext4_get_fname_crypto_ctx(struct inode *inode,
2121 u32 max_len)
2119int ext4_setup_fname_crypto(struct inode *inode)
2122{
2120{
2123 return NULL;
2121 return 0;
2124}
2125static inline void ext4_fname_crypto_free_buffer(struct ext4_str *p) { }
2122}
2123static inline void ext4_fname_crypto_free_buffer(struct ext4_str *p) { }
2124static inline int ext4_fname_setup_filename(struct inode *dir,
2125 const struct qstr *iname,
2126 int lookup, struct ext4_filename *fname)
2127{
2128 fname->usr_fname = iname;
2129 fname->disk_name.name = (unsigned char *) iname->name;
2130 fname->disk_name.len = iname->len;
2131 return 0;
2132}
2133static inline void ext4_fname_free_filename(struct ext4_filename *fname) { }
2126#endif
2127
2128
2129/* crypto_key.c */
2134#endif
2135
2136
2137/* crypto_key.c */
2130int ext4_generate_encryption_key(struct inode *inode);
2138void ext4_free_crypt_info(struct ext4_crypt_info *ci);
2139void ext4_free_encryption_info(struct inode *inode, struct ext4_crypt_info *ci);
2140int _ext4_get_encryption_info(struct inode *inode);
2131
2132#ifdef CONFIG_EXT4_FS_ENCRYPTION
2133int ext4_has_encryption_key(struct inode *inode);
2141
2142#ifdef CONFIG_EXT4_FS_ENCRYPTION
2143int ext4_has_encryption_key(struct inode *inode);
2144
2145static inline int ext4_get_encryption_info(struct inode *inode)
2146{
2147 struct ext4_crypt_info *ci = EXT4_I(inode)->i_crypt_info;
2148
2149 if (!ci ||
2150 (ci->ci_keyring_key &&
2151 (ci->ci_keyring_key->flags & ((1 << KEY_FLAG_INVALIDATED) |
2152 (1 << KEY_FLAG_REVOKED) |
2153 (1 << KEY_FLAG_DEAD)))))
2154 return _ext4_get_encryption_info(inode);
2155 return 0;
2156}
2157
2158static inline struct ext4_crypt_info *ext4_encryption_info(struct inode *inode)
2159{
2160 return EXT4_I(inode)->i_crypt_info;
2161}
2162
2134#else
2135static inline int ext4_has_encryption_key(struct inode *inode)
2136{
2137 return 0;
2138}
2163#else
2164static inline int ext4_has_encryption_key(struct inode *inode)
2165{
2166 return 0;
2167}
2168static inline int ext4_get_encryption_info(struct inode *inode)
2169{
2170 return 0;
2171}
2172static inline struct ext4_crypt_info *ext4_encryption_info(struct inode *inode)
2173{
2174 return NULL;
2175}
2139#endif
2140
2141
2142/* dir.c */
2143extern int __ext4_check_dir_entry(const char *, unsigned int, struct inode *,
2144 struct file *,
2145 struct ext4_dir_entry_2 *,
2146 struct buffer_head *, char *, int,

--- 4 unchanged lines hidden (view full) ---

2151extern int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
2152 __u32 minor_hash,
2153 struct ext4_dir_entry_2 *dirent,
2154 struct ext4_str *ent_name);
2155extern void ext4_htree_free_dir_info(struct dir_private_info *p);
2156extern int ext4_find_dest_de(struct inode *dir, struct inode *inode,
2157 struct buffer_head *bh,
2158 void *buf, int buf_size,
2176#endif
2177
2178
2179/* dir.c */
2180extern int __ext4_check_dir_entry(const char *, unsigned int, struct inode *,
2181 struct file *,
2182 struct ext4_dir_entry_2 *,
2183 struct buffer_head *, char *, int,

--- 4 unchanged lines hidden (view full) ---

2188extern int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
2189 __u32 minor_hash,
2190 struct ext4_dir_entry_2 *dirent,
2191 struct ext4_str *ent_name);
2192extern void ext4_htree_free_dir_info(struct dir_private_info *p);
2193extern int ext4_find_dest_de(struct inode *dir, struct inode *inode,
2194 struct buffer_head *bh,
2195 void *buf, int buf_size,
2159 const char *name, int namelen,
2196 struct ext4_filename *fname,
2160 struct ext4_dir_entry_2 **dest_de);
2161int ext4_insert_dentry(struct inode *dir,
2197 struct ext4_dir_entry_2 **dest_de);
2198int ext4_insert_dentry(struct inode *dir,
2162 struct inode *inode,
2163 struct ext4_dir_entry_2 *de,
2164 int buf_size,
2165 const struct qstr *iname,
2166 const char *name, int namelen);
2199 struct inode *inode,
2200 struct ext4_dir_entry_2 *de,
2201 int buf_size,
2202 struct ext4_filename *fname);
2167static inline void ext4_update_dx_flag(struct inode *inode)
2168{
2169 if (!EXT4_HAS_COMPAT_FEATURE(inode->i_sb,
2170 EXT4_FEATURE_COMPAT_DIR_INDEX))
2171 ext4_clear_inode_flag(inode, EXT4_INODE_INDEX);
2172}
2173static unsigned char ext4_filetype_table[] = {
2174 DT_UNKNOWN, DT_REG, DT_DIR, DT_CHR, DT_BLK, DT_FIFO, DT_SOCK, DT_LNK

--- 137 unchanged lines hidden (view full) ---

2312
2313/* namei.c */
2314extern int ext4_dirent_csum_verify(struct inode *inode,
2315 struct ext4_dir_entry *dirent);
2316extern int ext4_orphan_add(handle_t *, struct inode *);
2317extern int ext4_orphan_del(handle_t *, struct inode *);
2318extern int ext4_htree_fill_tree(struct file *dir_file, __u32 start_hash,
2319 __u32 start_minor_hash, __u32 *next_hash);
2203static inline void ext4_update_dx_flag(struct inode *inode)
2204{
2205 if (!EXT4_HAS_COMPAT_FEATURE(inode->i_sb,
2206 EXT4_FEATURE_COMPAT_DIR_INDEX))
2207 ext4_clear_inode_flag(inode, EXT4_INODE_INDEX);
2208}
2209static unsigned char ext4_filetype_table[] = {
2210 DT_UNKNOWN, DT_REG, DT_DIR, DT_CHR, DT_BLK, DT_FIFO, DT_SOCK, DT_LNK

--- 137 unchanged lines hidden (view full) ---

2348
2349/* namei.c */
2350extern int ext4_dirent_csum_verify(struct inode *inode,
2351 struct ext4_dir_entry *dirent);
2352extern int ext4_orphan_add(handle_t *, struct inode *);
2353extern int ext4_orphan_del(handle_t *, struct inode *);
2354extern int ext4_htree_fill_tree(struct file *dir_file, __u32 start_hash,
2355 __u32 start_minor_hash, __u32 *next_hash);
2320extern int search_dir(struct buffer_head *bh,
2321 char *search_buf,
2322 int buf_size,
2323 struct inode *dir,
2324 const struct qstr *d_name,
2325 unsigned int offset,
2326 struct ext4_dir_entry_2 **res_dir);
2356extern int ext4_search_dir(struct buffer_head *bh,
2357 char *search_buf,
2358 int buf_size,
2359 struct inode *dir,
2360 struct ext4_filename *fname,
2361 const struct qstr *d_name,
2362 unsigned int offset,
2363 struct ext4_dir_entry_2 **res_dir);
2327extern int ext4_generic_delete_entry(handle_t *handle,
2328 struct inode *dir,
2329 struct ext4_dir_entry_2 *de_del,
2330 struct buffer_head *bh,
2331 void *entry_buf,
2332 int buf_size,
2333 int csum_size);
2334extern int ext4_empty_dir(struct inode *inode);

--- 428 unchanged lines hidden (view full) ---

2763 struct inode *inode,
2764 loff_t pos, unsigned len,
2765 unsigned flags,
2766 struct page **pagep,
2767 void **fsdata);
2768extern int ext4_da_write_inline_data_end(struct inode *inode, loff_t pos,
2769 unsigned len, unsigned copied,
2770 struct page *page);
2364extern int ext4_generic_delete_entry(handle_t *handle,
2365 struct inode *dir,
2366 struct ext4_dir_entry_2 *de_del,
2367 struct buffer_head *bh,
2368 void *entry_buf,
2369 int buf_size,
2370 int csum_size);
2371extern int ext4_empty_dir(struct inode *inode);

--- 428 unchanged lines hidden (view full) ---

2800 struct inode *inode,
2801 loff_t pos, unsigned len,
2802 unsigned flags,
2803 struct page **pagep,
2804 void **fsdata);
2805extern int ext4_da_write_inline_data_end(struct inode *inode, loff_t pos,
2806 unsigned len, unsigned copied,
2807 struct page *page);
2771extern int ext4_try_add_inline_entry(handle_t *handle, struct dentry *dentry,
2808extern int ext4_try_add_inline_entry(handle_t *handle,
2809 struct ext4_filename *fname,
2810 struct dentry *dentry,
2772 struct inode *inode);
2773extern int ext4_try_create_inline_dir(handle_t *handle,
2774 struct inode *parent,
2775 struct inode *inode);
2776extern int ext4_read_inline_dir(struct file *filp,
2777 struct dir_context *ctx,
2778 int *has_inline_data);
2779extern int htree_inlinedir_to_tree(struct file *dir_file,
2780 struct inode *dir, ext4_lblk_t block,
2781 struct dx_hash_info *hinfo,
2782 __u32 start_hash, __u32 start_minor_hash,
2783 int *has_inline_data);
2784extern struct buffer_head *ext4_find_inline_entry(struct inode *dir,
2811 struct inode *inode);
2812extern int ext4_try_create_inline_dir(handle_t *handle,
2813 struct inode *parent,
2814 struct inode *inode);
2815extern int ext4_read_inline_dir(struct file *filp,
2816 struct dir_context *ctx,
2817 int *has_inline_data);
2818extern int htree_inlinedir_to_tree(struct file *dir_file,
2819 struct inode *dir, ext4_lblk_t block,
2820 struct dx_hash_info *hinfo,
2821 __u32 start_hash, __u32 start_minor_hash,
2822 int *has_inline_data);
2823extern struct buffer_head *ext4_find_inline_entry(struct inode *dir,
2824 struct ext4_filename *fname,
2785 const struct qstr *d_name,
2786 struct ext4_dir_entry_2 **res_dir,
2787 int *has_inline_data);
2788extern int ext4_delete_inline_entry(handle_t *handle,
2789 struct inode *dir,
2790 struct ext4_dir_entry_2 *de_del,
2791 struct buffer_head *bh,
2792 int *has_inline_data);

--- 114 unchanged lines hidden (view full) ---

2907 ext4_lblk_t lblk_start,
2908 ext4_lblk_t lblk_end);
2909extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk);
2910extern ext4_lblk_t ext4_ext_next_allocated_block(struct ext4_ext_path *path);
2911extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
2912 __u64 start, __u64 len);
2913extern int ext4_ext_precache(struct inode *inode);
2914extern int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len);
2825 const struct qstr *d_name,
2826 struct ext4_dir_entry_2 **res_dir,
2827 int *has_inline_data);
2828extern int ext4_delete_inline_entry(handle_t *handle,
2829 struct inode *dir,
2830 struct ext4_dir_entry_2 *de_del,
2831 struct buffer_head *bh,
2832 int *has_inline_data);

--- 114 unchanged lines hidden (view full) ---

2947 ext4_lblk_t lblk_start,
2948 ext4_lblk_t lblk_end);
2949extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk);
2950extern ext4_lblk_t ext4_ext_next_allocated_block(struct ext4_ext_path *path);
2951extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
2952 __u64 start, __u64 len);
2953extern int ext4_ext_precache(struct inode *inode);
2954extern int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len);
2955extern int ext4_insert_range(struct inode *inode, loff_t offset, loff_t len);
2915extern int ext4_swap_extents(handle_t *handle, struct inode *inode1,
2916 struct inode *inode2, ext4_lblk_t lblk1,
2917 ext4_lblk_t lblk2, ext4_lblk_t count,
2918 int mark_unwritten,int *err);
2919
2920/* move_extent.c */
2921extern void ext4_double_down_write_data_sem(struct inode *first,
2922 struct inode *second);

--- 76 unchanged lines hidden ---
2956extern int ext4_swap_extents(handle_t *handle, struct inode *inode1,
2957 struct inode *inode2, ext4_lblk_t lblk1,
2958 ext4_lblk_t lblk2, ext4_lblk_t count,
2959 int mark_unwritten,int *err);
2960
2961/* move_extent.c */
2962extern void ext4_double_down_write_data_sem(struct inode *first,
2963 struct inode *second);

--- 76 unchanged lines hidden ---