Btrfs: fix the qgroup reserved space is released prematurely
PATCH 1/3 Btrfs: fix the qgroup reserved space is released prematurely
In start_transactio(), we will try to join the transaction again after the current transaction is committed, so we should not release the reserved space of the qgroup. Fix it.
Cc Arne Jansen <[email protected]>
Signed-off-by Miao Xie <[email protected]>
--- fs/btrfs/transaction.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
fs/btrfs/transaction.c +2 -1
@@ -383,7 +383,7 @@ again: h->block_rsv =NULL ; h->orig_rsv =NULL ; h->aborted =0 ; - h->qgroup_reserved = qgroup_reserved; + h->qgroup_reserved =0 ; h->delayed_ref_elem.seq =0 ; h->type = type;INIT_LIST_HEAD (&h->qgroup_ref_list);
@@ -401,6 +401,7 @@ again: h->block_rsv = &root->fs_info->trans_block_rsv; h->bytes_reserved = num_bytes; } + h->qgroup_reserved = qgroup_reserved; got_it:btrfs_record_root_in_trans (h, root);
Signature · 1 line
1.6.5.2
Quoted 3 lines · Miao Xie
In
start_transactio(), we will try to join the transaction again after the current transaction is committed, so we should not release the reserved space of the qgroup. Fix it.
Why do we release the reserved space of the qgroup?
join
|
v
blocked && commit && goto again
|
v
fail somehow
|
v
release qgroup reserved space
The release part seems to be all right, am I missing something?
thanks,
liubo
Quoted 34 lines
Cc Arne Jansen <[email protected]>Signed-off-by Miao Xie <[email protected]>--- fs/btrfs/transaction.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)fs/btrfs/transaction.c +2
-1@@ -383,7 +383,7 @@ again: h->block_rsv =NULL ; h->orig_rsv =NULL ; h->aborted =0 ; - h->qgroup_reserved = qgroup_reserved; + h->qgroup_reserved =0 ; h->delayed_ref_elem.seq =0 ; h->type = type;INIT_LIST_HEAD (&h->qgroup_ref_list);@@ -401,6 +401,7 @@ again: h->block_rsv = &root->fs_info->trans_block_rsv; h->bytes_reserved = num_bytes; } + h->qgroup_reserved = qgroup_reserved; got_it:btrfs_record_root_in_trans (h, root);Signature · 5 lines
1.6.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html