сбой blk_get_request при использовании на непартизированном блочном устройстве - PullRequest
0 голосов
/ 10 июля 2019
struct block_device *bdev = lookup_bdev("/dev/sdc");
struct request_queue *rq = bdev_get_queue(bdev);
req = blk_get_request(rq, READ, __GFP_RECLAIM);

код выше работает нормально, когда у меня есть раздел на / dev / sdc, но падает, когда этого раздела нет.

Странно, если я удаляю раздел, этот код работает без сбоев.пока я не перезапущу машину.

[ 2238.666563] Hi. /dev/sdc
[ 2238.666591] BUG: unable to handle kernel NULL pointer dereference at 00000000000003e0
[ 2238.666600] IP: [<ffffffffa06e7029>] local_block_execute+0x29/0xe6 [inquiry]
[ 2238.666610] PGD 80000000b6a80067 PUD b5bb7067 PMD 0
[ 2238.666616] Oops: 0000 [#1] SMP
...