• Anand Jain's avatar
    btrfs: validate device maj:min during open · 9f7eb840
    Anand Jain authored
    Boris managed to create a device capable of changing its maj:min without
    altering its device path.
    
    Only multi-devices can be scanned. A device that gets scanned and remains
    in the btrfs kernel cache might end up with an incorrect maj:min.
    
    Despite the temp-fsid feature patch did not introduce this bug, it could
    lead to issues if the above multi-device is converted to a single device
    with a stale maj:min. Subsequently, attempting to mount the same device
    with the correct maj:min might mistake it for another device with the same
    fsid, potentially resulting in wrongly auto-enabling the temp-fsid feature.
    
    To address this, this patch validates the device's maj:min at the time of
    device open and updates it if it has changed since the last scan.
    
    CC: stable@vger.kernel.org # 6.7+
    Fixes: a5b8a5f9 ("btrfs: support cloned-device mount capability")
    Reported-by: default avatarBoris Burkov <boris@bur.io>
    Co-developed-by: default avatarBoris Burkov <boris@bur.io>
    Reviewed-by: Boris Burkov <boris@bur.io>#
    Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    9f7eb840
volumes.c 224 KB