• Chris Mason's avatar
    Btrfs: avoid races between super writeout and device list updates · e5e9a520
    Chris Mason authored
    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: default avatarChris Mason <chris.mason@oracle.com>
    e5e9a520
disk-io.c 65.3 KB