c - blk_get_request 在未分区的块设备上使用时崩溃
问题描述
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
解决方案
推荐阅读
- java - 在 AWS java 版本 2.10.4 中,控制在 S3Client 的初始化时挂起
- angular - 将应用程序 URL 从一个选项卡复制到另一个选项卡导致 404 错误
- javascript - 复杂的 if else jQuery 语句
- c++ - 将多个输出保存在 C++ 中的文本文件中
- angular - 如何在部署时更新 css url?
- swift - URLComponents 在添加路径时添加了神秘字符
- azure-devops - 执行 DotNetCoreCLI@2 任务时排除项目
- ios - 什么是 GDTCORStorage 类和 unarchivedObjectOfClass?
- excel - 从另一个用户表单中多次调用用户表单 - 日历日期选择器
- c# - 使用 NCrunch、FxCop 分析器和“错误警告”:如何在 NCrunch 中配置警告严重性?