读取文件字符设备文件的问题

[BUG] 读取设备文件时,超过inode大小后无法正确读取 · Issue #502 · DragonOS-Community/DragonOS (github.com)
该Issue问题定位到 file.rs (revision e7071df6a47c100381a8bc2000022e82d422361a) - OpenGrok cross reference for /DragonOS/kernel/src/filesystem/vfs/file.rs
这里文件系统读取时为所有的文件读取做了大小检查,但字符设备文件没有大小,并且大部分只能顺序读取数据,不受offset影响。目前还没有想到合适的解决方法,先记录一下问题。

对,我感觉也许file那一层的read方法不用做offset的判断。
https://code.dragonos.org.cn/xref/DragonOS/kernel/src/filesystem/vfs/file.rs?r=8d72b68da9339ec97e1b8929bcf2946f0fd83cd5#180

然后write的话确实需要resize,这个对于不能调整大小的设备而言,直接返回OK就行。

确实,反正offset都需要传入inode层,这样一些特殊的inode就不会被这个offset影响,需不需要管这个offset完全靠inode决定,而不是在File层全部写死。

我感觉可以单独开个pr,测试一下。直观上我觉得删掉这个貌似没问题。
(也许需要在FAT的读写那里看看有没做校验。

下面这个PR取消了File::read函数的对offset的判断,应该解决了问题。