- 论坛徽章:
- 0
|
原帖由 upcuiling 于 2006-11-24 09:04 发表
1,每次操作都出现这个问题
2,出现panic后,usb就被设定为read_only了,就写不进去了
3,umount后,再mount 转到第一个问题,usb为可写,但出现原来的panic
出现了这样的错误信息了吗?
msdos_write_inode: unable to read i-node block。
如果是的话,可以尝试着这么改一改,看看行不行。
在fs/fat/inode.c中,找到函数fat_write_inode,然后找到下面这段代码
if (!(bh = fat_bread(sb, i_pos >> MSDOS_SB(sb)->dir_per_block_bits))) {
printk("dev = %s, ino = %d\n", kdevname(inode->i_dev), i_pos);
fat_fs_panic(sb, "msdos_write_inode: unable to read i-node block" ;
unlock_kernel();
return;
}
将这段代码改成(在函数开头定义一个变量int try_cnt = 0;):
while(!(bh = fat_bread(sb, i_pos >> MSDOS_SB(sb)->dir_per_block_bits))) {
if(try_cnt++ < 100) {
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(HZ/100 + 1);
continue;
}
printk("dev = %s, ino = %d\n", kdevname(inode->i_dev), i_pos);
fat_fs_panic(sb, "msdos_write_inode: unable to read i-node block" ;
unlock_kernel();
return;
}
然后重新编译内核,试试看(我没试过啊) |
|