• Y
    Revert "block: move the NEED_PART_SCAN flag to struct gendisk" · acc38712
    Yu Kuai 提交于
    hulk inclusion
    category: bugfix
    bugzilla: 187190, https://gitee.com/src-openeuler/kernel/issues/I5GWOV
    CVE: NA
    
    --------------------------------
    
    This reverts commit b2f0e44f.
    
    Because it will introduce following problem in ltp zram tests:
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000600
    PGD 0 P4D 0
    Oops: 0002 [#1] SMP PTI
    CPU: 28 PID: 172121 Comm: sh Kdump: loaded Tainted: G           OE    --------- -  - 4.18.0+ #2
    Hardware name: Huawei RH2288H V3/BC11HGSA0, BIOS 5.15 05/21/2019
    RIP: 0010:flush_disk+0x1d/0x50
    RSP: 0018:ffffaf14a516fe20 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff899e26bac380 RCX: 0000000000000000
    RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff899e26bac380
    RBP: ffff899e26bac380 R08: 00000000000006a9 R09: 0000000000000004
    R10: ffff89cd878ff440 R11: 0000000000000001 R12: 0000000000000000
    R13: ffff899e26bac398 R14: ffffaf14a516ff00 R15: ffff89cd8709c3e0
    FS:  00007f78d6840740(0000) GS:ffff89fcbf480000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000600 CR3: 000000308afc0002 CR4: 00000000001606e0
    Call Trace:
     revalidate_disk+0x57/0x80
     reset_store+0xaf/0x120 [zram]
     kernfs_fop_write+0x10f/0x190
     vfs_write+0xad/0x1a0
     ksys_write+0x52/0xc0
     do_syscall_64+0x5d/0x1d0
     entry_SYSCALL_64_after_hwframe+0x65/0xca
    
    This is because "bdev->bd_disk" is not ensured to exist, just convert
    "set_bit(BDEV_NEED_PART_SCAN, &bdev->bd_flags)" to
    "set_bit(GD_NEED_PART_SCAN, &bdev->bd_disk->state)" is wrong.
    
    The reason to backport it is that commit 2a57456c8973 ("block:
    Fix warning in bd_link_disk_holder()") has a regression that part scan
    is disabled in device_add_disk(), and this problem will be fixed in
    later patch.
    Signed-off-by: NYu Kuai <yukuai3@huawei.com>
    Reviewed-by: NJason Yan <yanaijie@huawei.com>
    Signed-off-by: NYongqiang Liu <liuyongqiang13@huawei.com>
    acc38712
fs.h 114.9 KB