diff options
Diffstat (limited to 'fs/ext4/xattr.c')
| -rw-r--r-- | fs/ext4/xattr.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index 8966a5439a22..8cac7d95c3ad 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c @@ -1456,7 +1456,7 @@ ext4_xattr_inode_cache_find(struct inode *inode, const void *value,  	if (!ce)  		return NULL; -	ea_data = ext4_kvmalloc(value_len, GFP_NOFS); +	ea_data = kvmalloc(value_len, GFP_KERNEL);  	if (!ea_data) {  		mb_cache_entry_put(ea_inode_cache, ce);  		return NULL; @@ -2879,9 +2879,11 @@ int ext4_xattr_delete_inode(handle_t *handle, struct inode *inode,  		bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);  		if (IS_ERR(bh)) {  			error = PTR_ERR(bh); -			if (error == -EIO) +			if (error == -EIO) { +				ext4_set_errno(inode->i_sb, EIO);  				EXT4_ERROR_INODE(inode, "block %llu read error",  						 EXT4_I(inode)->i_file_acl); +			}  			bh = NULL;  			goto cleanup;  		}  |