• Anand Jain's avatar
    btrfs: fix null pointer deference at btrfs_sysfs_add_one+0x105 · f085381e
    Anand Jain authored
    bdev is null when disk has disappeared and mounted with
    the degrade option
    
    stack trace
    ---------
    btrfs_sysfs_add_one+0x105/0x1c0 [btrfs]
    open_ctree+0x15f3/0x1fe0 [btrfs]
    btrfs_mount+0x5db/0x790 [btrfs]
    ? alloc_pages_current+0xa4/0x160
    mount_fs+0x34/0x1b0
    vfs_kern_mount+0x62/0xf0
    do_mount+0x22e/0xa80
    ? __get_free_pages+0x9/0x40
    ? copy_mount_options+0x31/0x170
    SyS_mount+0x7e/0xc0
    system_call_fastpath+0x16/0x1b
    ---------
    
    reproducer:
    -------
    mkfs.btrfs -draid1 -mraid1 /dev/sdc /dev/sdd
    (detach a disk)
    devmgt detach /dev/sdc [1]
    mount -o degrade /dev/sdd /btrfs
    -------
    
    [1] github.com/anajain/devmgt.git
    Signed-off-by: default avatarAnand Jain <Anand.Jain@oracle.com>
    Tested-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    f085381e
sysfs.c 17.3 KB