diff options
Diffstat (limited to 'fs/ext4/inline.c')
| -rw-r--r-- | fs/ext4/inline.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index bea662bd0ca6..3ea62695abce 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -594,6 +594,7 @@ retry:  	if (ret) {  		unlock_page(page);  		page_cache_release(page); +		page = NULL;  		ext4_orphan_add(handle, inode);  		up_write(&EXT4_I(inode)->xattr_sem);  		sem_held = 0; @@ -613,7 +614,8 @@ retry:  	if (ret == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries))  		goto retry; -	block_commit_write(page, from, to); +	if (page) +		block_commit_write(page, from, to);  out:  	if (page) {  		unlock_page(page); @@ -1126,8 +1128,7 @@ static int ext4_finish_convert_inline_dir(handle_t *handle,  	memcpy((void *)de, buf + EXT4_INLINE_DOTDOT_SIZE,  		inline_size - EXT4_INLINE_DOTDOT_SIZE); -	if (EXT4_HAS_RO_COMPAT_FEATURE(inode->i_sb, -				       EXT4_FEATURE_RO_COMPAT_METADATA_CSUM)) +	if (ext4_has_metadata_csum(inode->i_sb))  		csum_size = sizeof(struct ext4_dir_entry_tail);  	inode->i_size = inode->i_sb->s_blocksize;  |