diff options
Diffstat (limited to 'fs/btrfs/transaction.c')
| -rw-r--r-- | fs/btrfs/transaction.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 7ac7cdcc294..17be3dedacb 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -335,6 +335,8 @@ again:  	if (!h)  		return ERR_PTR(-ENOMEM); +	sb_start_intwrite(root->fs_info->sb); +  	if (may_wait_transaction(root, type))  		wait_current_trans(root); @@ -345,6 +347,7 @@ again:  	} while (ret == -EBUSY);  	if (ret < 0) { +		sb_end_intwrite(root->fs_info->sb);  		kmem_cache_free(btrfs_trans_handle_cachep, h);  		return ERR_PTR(ret);  	} @@ -548,6 +551,8 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,  	btrfs_trans_release_metadata(trans, root);  	trans->block_rsv = NULL; +	sb_end_intwrite(root->fs_info->sb); +  	if (lock && !atomic_read(&root->fs_info->open_ioctl_trans) &&  	    should_end_transaction(trans, root)) {  		trans->transaction->blocked = 1; @@ -1578,6 +1583,8 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,  	put_transaction(cur_trans);  	put_transaction(cur_trans); +	sb_end_intwrite(root->fs_info->sb); +  	trace_btrfs_transaction_commit(root);  	btrfs_scrub_continue(root);  |