linuxfuse

How to get Logical Block Address(LBA) using FUSE file system?


I need to find the logical block address of files from a fuse based file system. Is there any function available that can find the logical block address of a file within a fuse filesystem?


Solution

  • In general, getting logical block info is done with the fiemap ioctl. See non fuse question about it: Logical block number to address (Linux filesystem)

    A fuse filesystem can process this ioctl, as any other ioctl, using the libfuse ioctl file operation, if you choose to implement it. See libfuse ioctl example: https://libfuse.github.io/doxygen/example_2ioctl_8c.html

    I found that there was an initiative to add a specialized fuse interface to give fiemap like info, but it seems to be incomplete: https://github.com/libfuse/libfuse/issues/72