diff options
Diffstat (limited to 'fs/ext4/inode.c')
| -rw-r--r-- | fs/ext4/inode.c | 9 | 
1 files changed, 3 insertions, 6 deletions
| diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index a6444cee0c7e..03ba20be1329 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -360,9 +360,9 @@ static int ext4_block_to_path(struct inode *inode,  		final = ptrs;  	} else {  		ext4_warning(inode->i_sb, "ext4_block_to_path", -				"block %lu > max", +				"block %lu > max in inode %lu",  				i_block + direct_blocks + -				indirect_blocks + double_blocks); +				indirect_blocks + double_blocks, inode->i_ino);  	}  	if (boundary)  		*boundary = final - 1 - (i_block & (ptrs - 1)); @@ -2821,9 +2821,6 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block)  		filemap_write_and_wait(mapping);  	} -	BUG_ON(!EXT4_JOURNAL(inode) && -	       EXT4_I(inode)->i_state & EXT4_STATE_JDATA); -  	if (EXT4_JOURNAL(inode) && EXT4_I(inode)->i_state & EXT4_STATE_JDATA) {  		/*  		 * This is a REALLY heavyweight approach, but the use of @@ -3622,7 +3619,7 @@ static void ext4_free_data(handle_t *handle, struct inode *inode,  		 * block pointed to itself, it would have been detached when  		 * the block was cleared. Check for this instead of OOPSing.  		 */ -		if (bh2jh(this_bh)) +		if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh))  			ext4_handle_dirty_metadata(handle, inode, this_bh);  		else  			ext4_error(inode->i_sb, __func__, | 
