]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Btrfs: fix possible deadlock when opening a seed device
authorLi Zefan <lizf@cn.fujitsu.com>
Wed, 7 Dec 2011 03:38:24 +0000 (11:38 +0800)
committerGuru Anbalagane <guru.anbalagane@oracle.com>
Fri, 27 Jan 2012 01:20:53 +0000 (17:20 -0800)
commite44dbce69b5193cd1a0b6214d24097dc1e6ca9f4
tree34639d0ab3455bb25934c99ff8fca51998c54e15
parentd605196d29400da4a9654114f7c3d8827689c5c9
Btrfs: fix possible deadlock when opening a seed device

The correct lock order is uuid_mutex -> volume_mutex -> chunk_mutex,
but when we mount a filesystem which has backing seed devices, we have
this lock chain:

    open_ctree()
        lock(chunk_mutex);
        read_chunk_tree();
            read_one_dev();
                open_seed_devices();
                    lock(uuid_mutex);

and then we hit a lockdep splat.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
(cherry picked from commit b367e47fb3a70f5d24ebd6faf7d42436d485fb2d)
fs/btrfs/disk-io.c
fs/btrfs/volumes.c