【问题标题】:What is the replacement of i_blksize member in struct inode?struct inode 中 i_blksize 成员的替换是什么?
【发布时间】:2015-02-15 18:26:32
【问题描述】:

我正在编译一个可堆叠的文件系统 wrapfs,但在 struct inode 数据结构中出现了关于缺少成员 i_blksize 的错误?查了一下,发现内核2.6版本之后,有很大的修改,去掉了i_blksize。该成员的替代品是什么?

kunal@Baweja:~/Documents/wrapfs$ make
make -C /lib/modules/3.13.0-40-generic/build SUBDIRS=/home/kunal/Documents/wrapfs modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-40-generic'
  CC [M]  /home/kunal/Documents/wrapfs/fist_wrapfs.o
In file included from /home/kunal/Documents/wrapfs/fist_wrapfs.c:15:0:
/home/kunal/Documents/wrapfs/wrapfs.h: In function ‘fist_copy_attr_all’:
/home/kunal/Documents/wrapfs/wrapfs.h:203:6: error: ‘inode_t’ has no member named ‘i_blksize’
  dest->i_blksize = src->i_blksize;
      ^
/home/kunal/Documents/wrapfs/wrapfs.h:203:23: error: ‘inode_t’ has no member named ‘i_blksize’
  dest->i_blksize = src->i_blksize;
                       ^
make[2]: *** [/home/kunal/Documents/wrapfs/fist_wrapfs.o] Error 1
make[1]: *** [_module_/home/kunal/Documents/wrapfs] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-40-generic'
make: *** [all] Error 2

【问题讨论】:

    标签: linux linux-kernel filesystems kernel inode


    【解决方案1】:

    看起来是不必要的重复

    inode->i_blksize == (1 << inode->i_blkbits)

    签出此邮件thread

    【讨论】:

    • @deimer 我想你的问题错了,请看我粘贴的输出,它说'inode_t'没有名为'i_blksize'的成员,所以我想知道什么是替代品该成员,我在哪里可以设置 inode 结构中数据块的块大小(已使用 typedef struct inode inode_t 重新定义为 inode_t;)
    • @RandomPerson 我能够弄清楚的是,i_blksize 已被删除,因为它始终等于1 << i_blkbits。所以你可能需要用1 << i_blkbits 替换i_blksize 调用我在这里出错了什么?
    • 哎呀我的错 :( 很抱歉 :( 我会尝试这样做并让你知道 :)
    猜你喜欢
    • 1970-01-01
    • 2014-04-30
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2020-07-09
    • 1970-01-01
    相关资源
    最近更新 更多