diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2018-03-14 20:23:25 +0100 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2018-03-14 20:23:25 +0100 | 
| commit | 745dd37f9d67c75d6cf1a1bebfcca71bdeb7a34c (patch) | |
| tree | e556543ed86b7f49e4972d8ea048ff9e46592b4d /fs/btrfs/inode.c | |
| parent | 02428742639bc3300c8c527b054d0ec0bdf5571d (diff) | |
| parent | 18a955219bf7d9008ce480d4451b6b8bf4483a22 (diff) | |
Merge branch 'x86/urgent' into x86/mm to pick up dependencies
Diffstat (limited to 'fs/btrfs/inode.c')
| -rw-r--r-- | fs/btrfs/inode.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index a79299a89b7d..f53470112670 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -2043,12 +2043,15 @@ static noinline int add_pending_csums(struct btrfs_trans_handle *trans,  			     struct inode *inode, struct list_head *list)  {  	struct btrfs_ordered_sum *sum; +	int ret;  	list_for_each_entry(sum, list, list) {  		trans->adding_csums = true; -		btrfs_csum_file_blocks(trans, +		ret = btrfs_csum_file_blocks(trans,  		       BTRFS_I(inode)->root->fs_info->csum_root, sum);  		trans->adding_csums = false; +		if (ret) +			return ret;  	}  	return 0;  } @@ -3062,7 +3065,11 @@ static int btrfs_finish_ordered_io(struct btrfs_ordered_extent *ordered_extent)  		goto out;  	} -	add_pending_csums(trans, inode, &ordered_extent->list); +	ret = add_pending_csums(trans, inode, &ordered_extent->list); +	if (ret) { +		btrfs_abort_transaction(trans, ret); +		goto out; +	}  	btrfs_ordered_update_i_size(inode, 0, ordered_extent);  	ret = btrfs_update_inode_fallback(trans, root, inode);  | 
