在VFS代码中常见的块设备中的数据块索引或者数据块号是逻辑块号还是物理块号
时间:2010-07-18
来源:互联网
最近看代码看晕了
在处理数据的时候经常会遇到数据块的索引或者标号
这个是逻辑的(文件系统定义的数据块)还是物理的(物理数据块)
谢谢
在处理数据的时候经常会遇到数据块的索引或者标号
这个是逻辑的(文件系统定义的数据块)还是物理的(物理数据块)
谢谢
作者: openspace 发布时间: 2010-07-18
本帖最后由 kgn28 于 2010-07-18 19:55 编辑
回复 openspace
对于读块设备,数据块号就是逻辑块号,readpage里面的的mpage_readpage方法传入的get_block判断,如果是裸读一个块设备,那么应该是默认的一个blkdev_readpage,get_block为blkdev_get_block:
http://lxr.linux.no/linux+v2.6.34.1/fs/block_dev.c#L119
注意上层的块号就是逻辑块号。
而物理块号?没有这个概念吧,对于物理方面,只有扇区的概念,而逻辑块号到扇区号的转换要看块的大小和分区信息中改分区起始扇区号,进行相应的移位即可。
回复 openspace
对于读块设备,数据块号就是逻辑块号,readpage里面的的mpage_readpage方法传入的get_block判断,如果是裸读一个块设备,那么应该是默认的一个blkdev_readpage,get_block为blkdev_get_block:
http://lxr.linux.no/linux+v2.6.34.1/fs/block_dev.c#L119
QUOTE:
119blkdev_get_block(struct inode *inode, sector_t iblock,
120 struct buffer_head *bh, int create)
121{
122 if (iblock >= max_block(I_BDEV(inode))) {
123 if (create)
124 return -EIO;
125
126 /*
127 * for reads, we're just trying to fill a partial page.
128 * return a hole, they will have to call get_block again
129 * before they can fill it, and they will get -EIO at that
130 * time
131 */
132 return 0;
133 }
134 bh->b_bdev = I_BDEV(inode);
135 bh->b_blocknr = iblock;
136 set_buffer_mapped(bh);
137 return 0;
138}
120 struct buffer_head *bh, int create)
121{
122 if (iblock >= max_block(I_BDEV(inode))) {
123 if (create)
124 return -EIO;
125
126 /*
127 * for reads, we're just trying to fill a partial page.
128 * return a hole, they will have to call get_block again
129 * before they can fill it, and they will get -EIO at that
130 * time
131 */
132 return 0;
133 }
134 bh->b_bdev = I_BDEV(inode);
135 bh->b_blocknr = iblock;
136 set_buffer_mapped(bh);
137 return 0;
138}
注意上层的块号就是逻辑块号。
而物理块号?没有这个概念吧,对于物理方面,只有扇区的概念,而逻辑块号到扇区号的转换要看块的大小和分区信息中改分区起始扇区号,进行相应的移位即可。
作者: kgn28 发布时间: 2010-07-18
VFS代码中都是逻辑块号,因为他本身就是指虚拟物理地址
作者: 0vk0 发布时间: 2010-07-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28