Correctly drop locks during error cases. Signed-off-by: Daniel J Blueman <daniel@quora.org> --- fs/btrfs/transaction.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 11b77a5..ede3988 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -73,8 +73,11 @@ loop: cur_trans = root->fs_info->running_transaction; if (cur_trans) { - if (cur_trans->aborted) + if (cur_trans->aborted) { + spin_unlock(&root->fs_info->trans_lock); return cur_trans->aborted; + } + atomic_inc(&cur_trans->use_count); atomic_inc(&cur_trans->num_writers); cur_trans->num_joined++; @@ -1400,6 +1403,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, ret = commit_fs_roots(trans, root); if (ret) { mutex_unlock(&root->fs_info->tree_log_mutex); + mutex_unlock(&root->fs_info->reloc_mutex); goto cleanup_transaction; } @@ -1411,6 +1415,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, ret = commit_cowonly_roots(trans, root); if (ret) { mutex_unlock(&root->fs_info->tree_log_mutex); + mutex_unlock(&root->fs_info->reloc_mutex); goto cleanup_transaction; } -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 26, 2012 at 12:04:51AM +0800, Daniel J Blueman wrote:> Correctly drop locks during error cases. > > Signed-off-by: Daniel J Blueman <daniel@quora.org> > --- > fs/btrfs/transaction.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c > index 11b77a5..ede3988 100644 > --- a/fs/btrfs/transaction.c > +++ b/fs/btrfs/transaction.c > @@ -73,8 +73,11 @@ loop: > > cur_trans = root->fs_info->running_transaction; > if (cur_trans) { > - if (cur_trans->aborted) > + if (cur_trans->aborted) { > + spin_unlock(&root->fs_info->trans_lock); > return cur_trans->aborted; > + } > + > atomic_inc(&cur_trans->use_count); > atomic_inc(&cur_trans->num_writers); > cur_trans->num_joined++; > @@ -1400,6 +1403,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, > ret = commit_fs_roots(trans, root); > if (ret) { > mutex_unlock(&root->fs_info->tree_log_mutex); > + mutex_unlock(&root->fs_info->reloc_mutex); > goto cleanup_transaction; > } > > @@ -1411,6 +1415,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, > ret = commit_cowonly_roots(trans, root); > if (ret) { > mutex_unlock(&root->fs_info->tree_log_mutex); > + mutex_unlock(&root->fs_info->reloc_mutex); > goto cleanup_transaction; > } > > -- > 1.7.9.5 >Reviewed-by: Josef Bacik <josef@redhat.com> Thanks, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Apr 26, 2012 at 12:04:51AM +0800, Daniel J Blueman wrote:> Correctly drop locks during error cases. > > Signed-off-by: Daniel J Blueman <daniel@quora.org> > ---fyi, the same patch is already present in for-linus, 871383be592ba7e819d27556591e315a0df38cee [http://www.spinics.net/lists/linux-btrfs/msg15837.html] david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Apr 25, 2012 at 11:40:14PM +0200, David Sterba wrote:> On Thu, Apr 26, 2012 at 12:04:51AM +0800, Daniel J Blueman wrote: > > Correctly drop locks during error cases. > > > > Signed-off-by: Daniel J Blueman <daniel@quora.org> > > --- > > fyi, the same patch is already present in for-linus, > 871383be592ba7e819d27556591e315a0df38cee > [http://www.spinics.net/lists/linux-btrfs/msg15837.html] >Hrm weird I didn''t have that in btrfs-next. Thanks, Josef -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html