diff options
Diffstat (limited to 'fs/btrfs/tree-log.c')
| -rw-r--r-- | fs/btrfs/tree-log.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 696dd861cc3c..39da9db35278 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -3449,11 +3449,13 @@ fail:  	btrfs_free_path(path);  out_unlock:  	mutex_unlock(&dir->log_mutex); -	if (ret == -ENOSPC) { +	if (err == -ENOSPC) {  		btrfs_set_log_full_commit(trans); -		ret = 0; -	} else if (ret < 0) -		btrfs_abort_transaction(trans, ret); +		err = 0; +	} else if (err < 0 && err != -ENOENT) { +		/* ENOENT can be returned if the entry hasn't been fsynced yet */ +		btrfs_abort_transaction(trans, err); +	}  	btrfs_end_log_trans(root);  | 
