On Sun, Jun 12, 2016 at 11:39:58PM -0400, Zygo Blaxell wrote: > This fixes a problem introduced in commit > 2f3165ecf103599f82bf0ea254039db335fb5005 > "btrfs: don't force mounts to wait for cleaner_kthread to delete one or more > subvolumes". > > open_ctree eventually calls btrfs_replay_log which in turn calls > btrfs_commit_super which tries to lock the cleaner_mutex, causing a > recursive mutex deadlock during mount. > > Instead of playing whack-a-mole trying to keep up with all the > functions that may want to lock cleaner_mutex, put all the cleaner_mutex > lockers back where they were, and attack the problem more directly: > keep cleaner_kthread asleep until the filesystem is mounted.
This approach looks good to me. > When filesystems are mounted read-only and later remounted read-write, > open_ctree did not set fs_info->open and neither does anything else. > Set this flag in btrfs_remount so that neither btrfs_delete_unused_bgs > nor cleaner_kthread get confused by the common case of "/" filesystem > read-only mount followed by read-write remount. > > Signed-off-by: Zygo Blaxell <ce3g8...@umail.furryterror.org> Reviewed-by: David Sterba <dste...@suse.com> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html