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 --- |