• Christoph Hellwig's avatar
    dm: only call early_lookup_bdev from early boot context · 7a126d5b
    Christoph Hellwig authored
    
    
    early_lookup_bdev is supposed to only be called from the early boot
    code, but dm_get_device calls it as a general fallback when lookup_bdev
    fails, which is problematic because early_lookup_bdev bypasses all normal
    path based permission checking, and might cause problems with certain
    container environments renaming devices.
    
    Switch to only call early_lookup_bdev when dm is built-in and the system
    state in not running yet.  This means it is still available when tables
    are constructed by dm-init.c from the kernel command line, but not
    otherwise.
    
    Note that this strictly speaking changes the kernel ABI as the PARTUUID=
    and PARTLABEL= style syntax is now not available during a running
    systems.  They never were intended for that, but this breaks things
    we'll have to figure out a way to make them available again.  But if
    avoidable in any way I'd rather avoid that.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarMike Snitzer <snitzer@kernel.org>
    Link: https://lore.kernel.org/r/20230531125535.676098-21-hch@lst.de
    
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    7a126d5b
dm-table.c 53 KB