• Roland Dreier's avatar
    driver core: Convert '/' to '!' in dev_set_name() · 7143f7a1
    Roland Dreier authored
    Commit 3ada8b7e ("block: struct device - replace bus_id with dev_name(),
    dev_set_name()") deleted the code in register_disk() that changed a '/'
    to a '!' in the device name when registering a disk, but dev_set_name()
    does not perform this conversion.
    
    This leads to amusing problems with disks that have '/' in their names:
    for example a failure to boot with the root partition on a cciss device,
    even though the kernel says it knows about the root device:
    
        VFS: Cannot open root device "cciss/c0d0p6" or unknown-block(0,0)
        Please append a correct "root=" boot option; here are the available partitions:
        6800        71652960 cciss/c0d0 driver: cciss
          6802               1 cciss/c0d0p2
          6805         2931831 cciss/c0d0p5
          6806        34354908 cciss/c0d0p6
        6810        71652960 cciss/c0d1 driver: cciss
    
    Fix this by adding code to change '/' to '!' in dev_set_name() to handle
    this until dev_set_name() is converted to use kobject_set_name().
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    Acked-by: default avatarKay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    7143f7a1
core.c 41.2 KB