diff options
| -rw-r--r-- | fs/btrfs/delayed-ref.c | 3 | ||||
| -rw-r--r-- | fs/btrfs/qgroup.c | 9 | 
2 files changed, 9 insertions, 3 deletions
| diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c index a1a40cf382e3..7ab5e0128f0c 100644 --- a/fs/btrfs/delayed-ref.c +++ b/fs/btrfs/delayed-ref.c @@ -821,7 +821,8 @@ int btrfs_add_delayed_tree_ref(struct btrfs_fs_info *fs_info,  	spin_unlock(&delayed_refs->lock);  	if (qrecord_inserted) -		return btrfs_qgroup_trace_extent_post(fs_info, record); +		btrfs_qgroup_trace_extent_post(fs_info, record); +  	return 0;  free_head_ref: diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 9e61dd624f7b..aa259d6986e1 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -1442,8 +1442,13 @@ int btrfs_qgroup_trace_extent_post(struct btrfs_fs_info *fs_info,  	int ret;  	ret = btrfs_find_all_roots(NULL, fs_info, bytenr, 0, &old_root, false); -	if (ret < 0) -		return ret; +	if (ret < 0) { +		fs_info->qgroup_flags |= BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT; +		btrfs_warn(fs_info, +"error accounting new delayed refs extent (err code: %d), quota inconsistent", +			ret); +		return 0; +	}  	/*  	 * Here we don't need to get the lock of | 
