在kernel里面使用kernel_write函数写数据到磁盘文件,出现下面的错误信息:
kernel BUG at fs/buffer.c:1251
何解?这次的思路是找到fs下面的buffer.c文件,看到1251行,代码如下:
BUG_ON(irqs_disable());
根据这个代码,反推出错代码:
spin_lock_irq
spin_unlock_irq
改为:
spin_lock
spin_unlock
后记:kernel版本是5.14.0
错误信息为:kernel BUG at fs/buffer.c:1222
本文针对在kernel中使用kernel_write函数写数据到磁盘文件时出现的错误进行了解析。通过定位到fs/buffer.c文件第1251行的BUG_ON(irqs_disable()),分析了引发错误的原因,并给出了具体的修改建议:将spin_lock_irq和spin_unlock_irq替换为spin_lock和spin_unlock。
1万+

被折叠的 条评论
为什么被折叠?



