LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1302|回复: 0

如何通过inode得到/修改真实的物理数据信息?

[复制链接]
发表于 2008-7-9 14:23:45 | 显示全部楼层 |阅读模式
请问, 在内核里,用filp_open打开一个文件后, 得到了file->dentry->inode,
那么能不能通过inode得到具体的原始数据的相关信息呢?
比如这个inode关联了那些"数据块" ?
目的类似我可以在内核里创造一些新的inode, 并且"随意"指定一些数据给这个inode,那么我就可以"创建"一个文件了

struct inode:

  1.         unsigned int            i_blkbits;
  2.         blkcnt_t                i_blocks;
  3.         unsigned short          i_bytes;
  4. ...
  5.         struct super_block      *i_sb;
  6.         struct file_lock        *i_flock;
  7.         struct address_space    *i_mapping;
  8.         struct address_space    i_data;
复制代码

通过哪个成员可以得到具体的数据信息呢?



struct ext3_inode:


  1.         __le32  i_blocks;       /* Blocks count */
  2.         __le32  i_block[EXT3_N_BLOCKS];/* Pointers to blocks */
复制代码

貌似这两个东东嫌疑比价大,(也不是很清楚)
尽量还是想在struct inode哪个地方解决, 不想针对每种fs都单独处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表