ext4: Get rid of EXTEND_DISKSIZE flag of ext4_get_blocks_handle()
Get rid of EXTEND_DISKSIZE flag of ext4_get_blocks_handle(). This seems to be a relict from some old days and setting disksize in this function does not make much sense. Currently it was set only by ext4_getblk(). Since the parameter has some effect only if create == 1, it is easy to check by grepping through the sources that the three callers which end up calling ext4_getblk() with create == 1 (ext4_append, ext4_quota_write, ext4_mkdir) do the right thing and set disksize themselves. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
Родитель
0b8e58a140
Коммит
03f5d8bcf0
|
@ -323,15 +323,13 @@ struct ext4_new_group_data {
|
|||
#define EXT4_GET_BLOCKS_UNINIT_EXT 0x0002
|
||||
#define EXT4_GET_BLOCKS_CREATE_UNINIT_EXT (EXT4_GET_BLOCKS_UNINIT_EXT|\
|
||||
EXT4_GET_BLOCKS_CREATE)
|
||||
/* Update the ext4_inode_info i_disksize field */
|
||||
#define EXT4_GET_BLOCKS_EXTEND_DISKSIZE 0x0004
|
||||
/* Caller is from the delayed allocation writeout path,
|
||||
so set the magic i_delalloc_reserve_flag after taking the
|
||||
inode allocation semaphore for */
|
||||
#define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0008
|
||||
#define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0004
|
||||
/* Call ext4_da_update_reserve_space() after successfully
|
||||
allocating the blocks */
|
||||
#define EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE 0x0010
|
||||
#define EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE 0x0008
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -2779,7 +2779,6 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode,
|
|||
int err = 0, depth, ret, cache_type;
|
||||
unsigned int allocated = 0;
|
||||
struct ext4_allocation_request ar;
|
||||
loff_t disksize;
|
||||
|
||||
__clear_bit(BH_New, &bh_result->b_state);
|
||||
ext_debug("blocks %u/%u requested for inode %u\n",
|
||||
|
@ -2969,14 +2968,6 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode,
|
|||
newblock = ext_pblock(&newex);
|
||||
allocated = ext4_ext_get_actual_len(&newex);
|
||||
outnew:
|
||||
if (flags & EXT4_GET_BLOCKS_EXTEND_DISKSIZE) {
|
||||
disksize = ((loff_t) iblock + ar.len) << inode->i_blkbits;
|
||||
if (disksize > i_size_read(inode))
|
||||
disksize = i_size_read(inode);
|
||||
if (disksize > EXT4_I(inode)->i_disksize)
|
||||
EXT4_I(inode)->i_disksize = disksize;
|
||||
}
|
||||
|
||||
set_buffer_new(bh_result);
|
||||
|
||||
/* Cache only when it is _not_ an uninitialized extent */
|
||||
|
|
|
@ -933,11 +933,8 @@ static int ext4_ind_get_blocks(handle_t *handle, struct inode *inode,
|
|||
int indirect_blks;
|
||||
int blocks_to_boundary = 0;
|
||||
int depth;
|
||||
struct ext4_inode_info *ei = EXT4_I(inode);
|
||||
int count = 0;
|
||||
ext4_fsblk_t first_block = 0;
|
||||
loff_t disksize;
|
||||
|
||||
|
||||
J_ASSERT(!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL));
|
||||
J_ASSERT(handle != NULL || (flags & EXT4_GET_BLOCKS_CREATE) == 0);
|
||||
|
@ -1003,19 +1000,7 @@ static int ext4_ind_get_blocks(handle_t *handle, struct inode *inode,
|
|||
if (!err)
|
||||
err = ext4_splice_branch(handle, inode, iblock,
|
||||
partial, indirect_blks, count);
|
||||
/*
|
||||
* i_disksize growing is protected by i_data_sem. Don't forget to
|
||||
* protect it if you're about to implement concurrent
|
||||
* ext4_get_block() -bzzz
|
||||
*/
|
||||
if (!err && (flags & EXT4_GET_BLOCKS_EXTEND_DISKSIZE)) {
|
||||
disksize = ((loff_t) iblock + count) << inode->i_blkbits;
|
||||
if (disksize > i_size_read(inode))
|
||||
disksize = i_size_read(inode);
|
||||
if (disksize > ei->i_disksize)
|
||||
ei->i_disksize = disksize;
|
||||
}
|
||||
if (err)
|
||||
else
|
||||
goto cleanup;
|
||||
|
||||
set_buffer_new(bh_result);
|
||||
|
@ -1321,7 +1306,7 @@ struct buffer_head *ext4_getblk(handle_t *handle, struct inode *inode,
|
|||
{
|
||||
struct buffer_head dummy;
|
||||
int fatal = 0, err;
|
||||
int flags = EXT4_GET_BLOCKS_EXTEND_DISKSIZE;
|
||||
int flags = 0;
|
||||
|
||||
J_ASSERT(handle != NULL || create == 0);
|
||||
|
||||
|
@ -2153,9 +2138,7 @@ static int mpage_da_map_blocks(struct mpage_da_data *mpd)
|
|||
}
|
||||
|
||||
/*
|
||||
* Update on-disk size along with block allocation we don't
|
||||
* use EXT4_GET_BLOCKS_EXTEND_DISKSIZE as size may change
|
||||
* within already allocated block -bzzz
|
||||
* Update on-disk size along with block allocation.
|
||||
*/
|
||||
disksize = ((loff_t) next + blks) << mpd->inode->i_blkbits;
|
||||
if (disksize > i_size_read(mpd->inode))
|
||||
|
|
Загрузка…
Ссылка в новой задаче