Patch "btrfs: Fix no_space in write and rm loop" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
btrfs: Fix no_space in write and rm loop
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
btrfs-fix-no_space-in-write-and-rm-loop.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e1746e8381cd2af421f75557b5cae3604fc18b35Mon Sep 17 00:00:00 2001
From: Zhao Lei <[email protected]>
Date: Tue, 1 Dec 2015 18:39:40 +0800
Subject: btrfs: Fix no_space in write and rm loop
From: Zhao Lei <[email protected]>
commit e1746e8381cd2af421f75557b5cae3604fc18b35 upstream.
I see no_space in v4.4-rc1 again in xfstests generic/102. It happened randomly in some node only.
(one of 4 phy-node, and a kvm with non-virtio block driver)
By bisect, we can found the first-bad is:
commit bdced438acd8 ("block: setup bi_phys_segments after splitting")'
But above patch only triggered the bug by making bio operation faster(or slower).
Main reason is in our space_allocating code, we need to commit page writeback before wait it complish, this patch fixed above bug.
BTW, there is another reason for generic/102 fail, caused by disable default mixed-blockgroup, I'll fix it in xfstests.
--- fs/btrfs/extent-tree.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
fs/btrfs/extent-tree.c +3 -1
@@ -4086,8 +4086,10 @@ commit_trans: !atomic_read(&root->fs_info->open_ioctl_trans)) { need_commit--; -if (need_commit >0 ) +if (need_commit >0 ) { +btrfs_start_delalloc_roots (fs_info,0 ,-1 );btrfs_wait_ordered_roots (fs_info,-1 ); + } trans =btrfs_join_transaction (root);if (IS_ERR (trans))
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/btrfs-fix-no_space-in-write-and-rm-loop.patch