diff options
| -rw-r--r-- | fs/btrfs/inode.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 029892887fc1..92df0a5d1d94 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -257,10 +257,13 @@ static noinline int cow_file_range_inline(struct btrfs_trans_handle *trans,  	ret = insert_inline_extent(trans, root, inode, start,  				   inline_len, compressed_size,  				   compress_type, compressed_pages); -	if (ret) { +	if (ret && ret != -ENOSPC) {  		btrfs_abort_transaction(trans, root, ret);  		return ret; +	} else if (ret == -ENOSPC) { +		return 1;  	} +  	btrfs_delalloc_release_metadata(inode, end + 1 - start);  	btrfs_drop_extent_cache(inode, start, aligned_end - 1, 0);  	return 0;  | 
