• Mark Fasheh's avatar
    vfs: vfs-level fiemap interface · c4b929b8
    Mark Fasheh authored
    Basic vfs-level fiemap infrastructure, which sets up a new ->fiemap
    inode operation.
    
    Userspace can get extent information on a file via fiemap ioctl. As input,
    the fiemap ioctl takes a struct fiemap which includes an array of struct
    fiemap_extent (fm_extents). Size of the extent array is passed as
    fm_extent_count and number of extents returned will be written into
    fm_mapped_extents. Offset and length fields on the fiemap structure
    (fm_start, fm_length) describe a logical range which will be searched for
    extents. All extents returned will at least partially contain this range.
    The actual extent offsets and ranges returned will be unmodified from their
    offset and range on-disk.
    
    The fiemap ioctl returns '0' on success. On error, -1 is returned and errno
    is set. If errno is equal to EBADR, then fm_flags will contain those flags
    which were passed in which the kernel did not understand. On all other
    errors, the contents of fm_extents is undefined.
    
    As fiemap evolved, there have been many authors of the vfs patch. As far as
    I can tell, the list includes:
    Kalpak Shah <kalpak.shah@sun.com>
    Andreas Dilger <adilger@sun.com>
    Eric Sandeen <sandeen@redhat.com>
    Mark Fasheh <mfasheh@suse.com>
    Signed-off-by: default avatarMark Fasheh <mfasheh@suse.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
    Cc: linux-api@vger.kernel.org
    Cc: linux-fsdevel@vger.kernel.org
    c4b929b8
fiemap.h 2.46 KB