aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/ext4.h
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2009-05-14 13:57:08 -0400
committerTheodore Ts'o <tytso@mit.edu>2009-05-14 13:57:08 -0400
commit2ac3b6e00acb46406c993d57921f86a594aafe08 (patch)
tree51f8a245caa53776fb9617973742ffc81023e007 /fs/ext4/ext4.h
parent2fa3cdfb319055fd8b25abdafa413e16f00ad493 (diff)
ext4: Clean up ext4_get_blocks() so it does not depend on bh_result->b_state
The ext4_get_blocks() function was depending on the value of bh_result->b_state as an input parameter to decide whether or not update the delalloc accounting statistics by calling ext4_da_update_reserve_space(). We now use a separate flag, EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE, to requests this update, so that all callers of ext4_get_blocks() can clear map_bh.b_state before calling ext4_get_blocks() without worrying about any consistency issues. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r--fs/ext4/ext4.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 17feb4ac633a..d164f1294e5f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -318,16 +318,21 @@ struct ext4_new_group_data {
318 */ 318 */
319 /* Allocate any needed blocks and/or convert an unitialized 319 /* Allocate any needed blocks and/or convert an unitialized
320 extent to be an initialized ext4 */ 320 extent to be an initialized ext4 */
321#define EXT4_GET_BLOCKS_CREATE 1 321#define EXT4_GET_BLOCKS_CREATE 0x0001
322 /* Request the creation of an unitialized extent */ 322 /* Request the creation of an unitialized extent */
323#define EXT4_GET_BLOCKS_UNINIT_EXT 2 323#define EXT4_GET_BLOCKS_UNINIT_EXT 0x0002
324#define EXT4_GET_BLOCKS_CREATE_UNINIT_EXT (EXT4_GET_BLOCKS_UNINIT_EXT|\ 324#define EXT4_GET_BLOCKS_CREATE_UNINIT_EXT (EXT4_GET_BLOCKS_UNINIT_EXT|\
325 EXT4_GET_BLOCKS_CREATE) 325 EXT4_GET_BLOCKS_CREATE)
326 /* Update the ext4_inode_info i_disksize field */ 326 /* Update the ext4_inode_info i_disksize field */
327#define EXT4_GET_BLOCKS_EXTEND_DISKSIZE 4 327#define EXT4_GET_BLOCKS_EXTEND_DISKSIZE 0x0004
328 /* Caller is from the delayed allocation writeout path, 328 /* Caller is from the delayed allocation writeout path,
329 so the filesystem blocks have already been accounted for */ 329 so set the magic i_delalloc_reserve_flag after taking the
330#define EXT4_GET_BLOCKS_DELALLOC_RESERVE 8 330 inode allocation semaphore for */
331#define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0008
332 /* Call ext4_da_update_reserve_space() after successfully
333 allocating the blocks */
334#define EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE 0x0010
335
331 336
332/* 337/*
333 * ioctl commands 338 * ioctl commands