diff options
Diffstat (limited to 'fs/ext4/inode.c')
| -rw-r--r-- | fs/ext4/inode.c | 32 | 
1 files changed, 16 insertions, 16 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 44bad4bb8831..bf596467c234 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -383,7 +383,7 @@ void ext4_da_update_reserve_space(struct inode *inode,  	 */  	if ((ei->i_reserved_data_blocks == 0) &&  	    !inode_is_open_for_write(inode)) -		ext4_discard_preallocations(inode); +		ext4_discard_preallocations(inode, 0);  }  static int __check_block_validity(struct inode *inode, const char *func, @@ -394,8 +394,7 @@ static int __check_block_validity(struct inode *inode, const char *func,  	    (inode->i_ino ==  	     le32_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_journal_inum)))  		return 0; -	if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk, -				   map->m_len)) { +	if (!ext4_inode_block_valid(inode, map->m_pblk, map->m_len)) {  		ext4_error_inode(inode, func, line, map->m_pblk,  				 "lblock %lu mapped to illegal pblock %llu "  				 "(length %d)", (unsigned long) map->m_lblk, @@ -3288,7 +3287,7 @@ static int ext4_releasepage(struct page *page, gfp_t wait)  	if (PageChecked(page))  		return 0;  	if (journal) -		return jbd2_journal_try_to_free_buffers(journal, page, wait); +		return jbd2_journal_try_to_free_buffers(journal, page);  	else  		return try_to_free_buffers(page);  } @@ -4056,7 +4055,7 @@ int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length)  	if (stop_block > first_block) {  		down_write(&EXT4_I(inode)->i_data_sem); -		ext4_discard_preallocations(inode); +		ext4_discard_preallocations(inode, 0);  		ret = ext4_es_remove_extent(inode, first_block,  					    stop_block - first_block); @@ -4163,7 +4162,7 @@ int ext4_truncate(struct inode *inode)  	trace_ext4_truncate_enter(inode);  	if (!ext4_can_truncate(inode)) -		return 0; +		goto out_trace;  	if (inode->i_size == 0 && !test_opt(inode->i_sb, NO_AUTO_DA_ALLOC))  		ext4_set_inode_state(inode, EXT4_STATE_DA_ALLOC_CLOSE); @@ -4172,16 +4171,14 @@ int ext4_truncate(struct inode *inode)  		int has_inline = 1;  		err = ext4_inline_data_truncate(inode, &has_inline); -		if (err) -			return err; -		if (has_inline) -			return 0; +		if (err || has_inline) +			goto out_trace;  	}  	/* If we zero-out tail of the page, we have to create jinode for jbd2 */  	if (inode->i_size & (inode->i_sb->s_blocksize - 1)) {  		if (ext4_inode_attach_jinode(inode) < 0) -			return 0; +			goto out_trace;  	}  	if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) @@ -4190,8 +4187,10 @@ int ext4_truncate(struct inode *inode)  		credits = ext4_blocks_for_truncate(inode);  	handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); -	if (IS_ERR(handle)) -		return PTR_ERR(handle); +	if (IS_ERR(handle)) { +		err = PTR_ERR(handle); +		goto out_trace; +	}  	if (inode->i_size & (inode->i_sb->s_blocksize - 1))  		ext4_block_truncate_page(handle, mapping, inode->i_size); @@ -4211,7 +4210,7 @@ int ext4_truncate(struct inode *inode)  	down_write(&EXT4_I(inode)->i_data_sem); -	ext4_discard_preallocations(inode); +	ext4_discard_preallocations(inode, 0);  	if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))  		err = ext4_ext_truncate(handle, inode); @@ -4242,6 +4241,7 @@ out_stop:  		err = err2;  	ext4_journal_stop(handle); +out_trace:  	trace_ext4_truncate_exit(inode);  	return err;  } @@ -4760,7 +4760,7 @@ struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,  	ret = 0;  	if (ei->i_file_acl && -	    !ext4_data_block_valid(EXT4_SB(sb), ei->i_file_acl, 1)) { +	    !ext4_inode_block_valid(inode, ei->i_file_acl, 1)) {  		ext4_error_inode(inode, function, line, 0,  				 "iget: bad extended attribute block %llu",  				 ei->i_file_acl); @@ -4901,7 +4901,7 @@ static void __ext4_update_other_inode_time(struct super_block *sb,  	    (inode->i_state & I_DIRTY_TIME)) {  		struct ext4_inode_info	*ei = EXT4_I(inode); -		inode->i_state &= ~(I_DIRTY_TIME | I_DIRTY_TIME_EXPIRED); +		inode->i_state &= ~I_DIRTY_TIME;  		spin_unlock(&inode->i_lock);  		spin_lock(&ei->i_raw_lock);  |