瀏覽代碼

fix(vfs): check if special node ops func exist

greatbridf 2 年之前
父節點
當前提交
9b715713dc
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      src/kernel/vfs.cpp

+ 2 - 2
src/kernel/vfs.cpp

@@ -294,7 +294,7 @@ size_t vfs_read(struct inode* file, char* buf, size_t buf_size, size_t offset, s
             .v = (uint32_t)file->impl
         };
         auto* ops = &sn_ops[sn.in.major][sn.in.minor];
-        if (ops)
+        if (ops && ops->read)
             return ops->read(buf, buf_size, offset, n);
     } else {
         if (file->fs->ops->read)
@@ -309,7 +309,7 @@ size_t vfs_write(struct inode* file, const char* buf, size_t offset, size_t n)
             .v = (uint32_t)file->impl
         };
         auto* ops = &sn_ops[sn.in.major][sn.in.minor];
-        if (ops)
+        if (ops && ops->write)
             return ops->write(buf, offset, n);
     } else {
         if (file->fs->ops->read)