• A
    btrfs: free device in btrfs_close_devices for a single device filesystem · 5f58d783
    Anand Jain 提交于
    We have this check to make sure we don't accidentally add older devices
    that may have disappeared and re-appeared with an older generation from
    being added to an fs_devices (such as a replace source device). This
    makes sense, we don't want stale disks in our file system. However for
    single disks this doesn't really make sense.
    
    I've seen this in testing, but I was provided a reproducer from a
    project that builds btrfs images on loopback devices. The loopback
    device gets cached with the new generation, and then if it is re-used to
    generate a new file system we'll fail to mount it because the new fs is
    "older" than what we have in cache.
    
    Fix this by freeing the cache when closing the device for a single device
    filesystem. This will ensure that the mount command passed device path is
    scanned successfully during the next mount.
    
    CC: stable@vger.kernel.org # 5.10+
    Reported-by: NDaan De Meyer <daandemeyer@fb.com>
    Signed-off-by: NJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: NAnand Jain <anand.jain@oracle.com>
    Reviewed-by: NDavid Sterba <dsterba@suse.com>
    Signed-off-by: NDavid Sterba <dsterba@suse.com>
    5f58d783
volumes.c 219.7 KB