diff options
| author | Chris Mason <chris.mason@oracle.com> | 2011-01-31 16:48:24 -0500 | 
|---|---|---|
| committer | Chris Mason <chris.mason@oracle.com> | 2011-01-31 16:48:24 -0500 | 
| commit | b31eabd86eb68d3c217e6821078249bc045e698a (patch) | |
| tree | a6453484e1404ab2f92affad0225b3929dff5df6 /fs/btrfs/tree-log.c | |
| parent | b1953bcec95c189b1eea690a08e89646d7750bda (diff) | |
| download | olio-linux-3.10-b31eabd86eb68d3c217e6821078249bc045e698a.tar.xz olio-linux-3.10-b31eabd86eb68d3c217e6821078249bc045e698a.zip  | |
Btrfs: catch errors from btrfs_sync_log
btrfs_sync_log returns -EAGAIN when we need full transaction commits
instead of small log commits, but sometimes we were dropping the return
value.
In practice, we check for this a few different ways, but this is still a
bug that can leave off full log commits when we really need them.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/tree-log.c')
| -rw-r--r-- | fs/btrfs/tree-log.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index c25a41d8611..42dfc307704 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -2051,6 +2051,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,  		wait_log_commit(trans, log_root_tree,  				log_root_tree->log_transid);  		mutex_unlock(&log_root_tree->log_mutex); +		ret = 0;  		goto out;  	}  	atomic_set(&log_root_tree->log_commit[index2], 1); @@ -2115,7 +2116,7 @@ out:  	smp_mb();  	if (waitqueue_active(&root->log_commit_wait[index1]))  		wake_up(&root->log_commit_wait[index1]); -	return 0; +	return ret;  }  static void free_log_tree(struct btrfs_trans_handle *trans,  |