6

How to get sparse block size and check if data is present at the given offset in sparse file in reiserfs/ext3 in Linux?

I want to use it to implement simple copy-on-write block device using FUSE.

Or I should better keep a bitmap in a separate file?

4

3 回答 3

5

/usr/src/linux/Documentation/filesystems/fiemap.txt

fiemap ioctl 是用户空间获取文件范围映射的有效方法。fiemap 不是逐块映射(例如 bmap),而是返回范围列表。

git://kernel.ubuntu.com/cking/debug-code/fiemap/中有一个简单的使用示例。稀疏文件将缺少“缺失”部分的范围。

于 2010-04-01T22:22:51.513 回答
2

由于 Linux 3.1lseek提供了标志SEEK_HOLESEEK_DATA导航到孔的开头或结尾,因此这可能是ioctl基于解决方案的替代方案。没有在实践中尝试过,所以我没有任何实际经验来比较两者。

于 2012-09-06T12:17:03.113 回答
1

好吧, http: //lxr.linux.no/#linux+v2.6.33/arch/um/drivers/cow_user.c表明用户模式Linux为此使用了一个明确的位图,FWIW。

于 2010-04-01T20:32:51.387 回答