I've implemented a basic filesystem using FUSE, with all foreseeable POSIX functionality implemented [naturally I haven't even profiled yet ;)]. Currently I'm able to run the filesystem on a regularly file, but the next step in development is to host it on an actual block device. Running my code as is, immediately fails on reading st_size
after calling fstat
on the device. Of course I don't expect the problems to stop there so:
- What changes are required to operate on block devices as opposed to regular files?
- What are some special considerations I need to make with regard to performance, limitations, special features and the like?
- Are there any tutorials and references with dealing with block special files? Googling has turned up very little useful; I only have background knowledge (ironically from MSDN in my dark past) and some scanty information in the manpages.