Btrfs: use join_transaction in btrfs_evict_inode()
The WARN_ON() in start_transaction() was triggered while balancing. The cause is btrfs_relocate_chunk() started a transaction and then called iput() on the inode that stores free space cache, and iput() called btrfs_start_transaction() again. Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Reviewed-by: Josef Bacik <josef@redhat.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
22b63a2971
commit
30b4caf5d7
@ -3646,7 +3646,7 @@ void btrfs_evict_inode(struct inode *inode)
|
||||
btrfs_i_size_write(inode, 0);
|
||||
|
||||
while (1) {
|
||||
trans = btrfs_start_transaction(root, 0);
|
||||
trans = btrfs_join_transaction(root);
|
||||
BUG_ON(IS_ERR(trans));
|
||||
trans->block_rsv = root->orphan_block_rsv;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user