|
@@ -933,11 +933,8 @@ static int ext4_ind_get_blocks(handle_t *handle, struct inode *inode,
|
|
int indirect_blks;
|
|
int indirect_blks;
|
|
int blocks_to_boundary = 0;
|
|
int blocks_to_boundary = 0;
|
|
int depth;
|
|
int depth;
|
|
- struct ext4_inode_info *ei = EXT4_I(inode);
|
|
|
|
int count = 0;
|
|
int count = 0;
|
|
ext4_fsblk_t first_block = 0;
|
|
ext4_fsblk_t first_block = 0;
|
|
- loff_t disksize;
|
|
|
|
-
|
|
|
|
|
|
|
|
J_ASSERT(!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL));
|
|
J_ASSERT(!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL));
|
|
J_ASSERT(handle != NULL || (flags & EXT4_GET_BLOCKS_CREATE) == 0);
|
|
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)
|
|
if (!err)
|
|
err = ext4_splice_branch(handle, inode, iblock,
|
|
err = ext4_splice_branch(handle, inode, iblock,
|
|
partial, indirect_blks, count);
|
|
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;
|
|
goto cleanup;
|
|
|
|
|
|
set_buffer_new(bh_result);
|
|
set_buffer_new(bh_result);
|
|
@@ -1321,7 +1306,7 @@ struct buffer_head *ext4_getblk(handle_t *handle, struct inode *inode,
|
|
{
|
|
{
|
|
struct buffer_head dummy;
|
|
struct buffer_head dummy;
|
|
int fatal = 0, err;
|
|
int fatal = 0, err;
|
|
- int flags = EXT4_GET_BLOCKS_EXTEND_DISKSIZE;
|
|
|
|
|
|
+ int flags = 0;
|
|
|
|
|
|
J_ASSERT(handle != NULL || create == 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;
|
|
disksize = ((loff_t) next + blks) << mpd->inode->i_blkbits;
|
|
if (disksize > i_size_read(mpd->inode))
|
|
if (disksize > i_size_read(mpd->inode))
|