diff options
author | Theodore Ts'o <tytso@mit.edu> | 2009-05-14 13:57:08 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2009-05-14 13:57:08 -0400 |
commit | 2ac3b6e00acb46406c993d57921f86a594aafe08 (patch) | |
tree | 51f8a245caa53776fb9617973742ffc81023e007 /fs/ext4/ext4.h | |
parent | 2fa3cdfb319055fd8b25abdafa413e16f00ad493 (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.h | 15 |
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 |