Btrfs: avoid races between super writeout and device list updates
authorChris Mason <chris.mason@oracle.com>
Wed, 10 Jun 2009 19:17:02 +0000 (15:17 -0400)
committerChris Mason <chris.mason@oracle.com>
Wed, 10 Jun 2009 19:17:02 +0000 (15:17 -0400)
On multi-device filesystems, btrfs writes supers to all of the devices
before considering a sync complete.  There wasn't any additional
locking between super writeout and the device list management code
because device management was done inside a transaction and
super writeout only happened  with no transation writers running.

With the btrfs fsync log and other async transaction updates, this
has been racey for some time.  This adds a mutex to protect
the device list.  The existing volume mutex could not be reused due to
transaction lock ordering requirements.

Signed-off-by: Chris Mason <chris.mason@oracle.com>

No differences found