Patch "btrfs: resume qgroup rescan on rw remount" has been added to the 3.18-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
btrfs: resume qgroup rescan on rw remount
to the 3.18-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-resume-qgroup-rescan-on-rw-remount.patch
and it can be found in the queue-3.18 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
6c6b5a39c4bf3dbd8cf629c9f5450e983c19dbb9Mon Sep 17 00:00:00 2001
From: Aleksa Sarai <[email protected]>
Date: Tue, 4 Jul 2017 21:49:06 +1000
Subject: btrfs: resume qgroup rescan on rw remount
From: Aleksa Sarai <[email protected]>
commit 6c6b5a39c4bf3dbd8cf629c9f5450e983c19dbb9 upstream.
Several distributions mount the "proper root" as ro during initrd and then remount it as rw before pivot_root(2). Thus, if a rescan had been aborted by a previous shutdown, the rescan would never be resumed.
This issue would manifest itself as several btrfs ioctl(2)s causing the entire machine to hang when btrfs_qgroup_wait_for_completion was hit (due to the fs_info->qgroup_rescan_running flag being set but the rescan itself not being resumed). Notably, Docker's btrfs storage driver makes regular use of BTRFS_QUOTA_CTL_DISABLE and BTRFS_IOC_QUOTA_RESCAN_WAIT (causing this problem to be manifested on boot for some machines).
--- fs/btrfs/super.c | 2 ++ 1 file changed, 2 insertions(+)
fs/btrfs/super.c +2 -0
@@ -1575,6 +1575,8 @@ static int btrfs_remount(struct super_bl goto restore; } +btrfs_qgroup_rescan_resume (fs_info); +if (!fs_info->uuid_root) {btrfs_info (fs_info,"creating UUID tree" ); ret =btrfs_create_uuid_tree (fs_info);
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/btrfs-resume-qgroup-rescan-on-rw-remount.patch