/linux-4.1.27/fs/ |
D | ioctl.c | 175 struct fiemap fiemap; in ioctl_fiemap() local 176 struct fiemap __user *ufiemap = (struct fiemap __user *) arg; in ioctl_fiemap() 183 if (!inode->i_op->fiemap) in ioctl_fiemap() 186 if (copy_from_user(&fiemap, ufiemap, sizeof(fiemap))) in ioctl_fiemap() 189 if (fiemap.fm_extent_count > FIEMAP_MAX_EXTENTS) in ioctl_fiemap() 192 error = fiemap_check_ranges(sb, fiemap.fm_start, fiemap.fm_length, in ioctl_fiemap() 197 fieinfo.fi_flags = fiemap.fm_flags; in ioctl_fiemap() 198 fieinfo.fi_extents_max = fiemap.fm_extent_count; in ioctl_fiemap() 201 if (fiemap.fm_extent_count != 0 && in ioctl_fiemap() 209 error = inode->i_op->fiemap(inode, &fieinfo, fiemap.fm_start, len); in ioctl_fiemap() [all …]
|
/linux-4.1.27/Documentation/filesystems/ |
D | fiemap.txt | 5 The fiemap ioctl is an efficient method for userspace to get file 6 extent mappings. Instead of block-by-block mapping (such as bmap), fiemap 13 A fiemap request is encoded within struct fiemap: 15 struct fiemap { 42 fiemap interface to grow in the future but without losing 66 which userspace must allocate along with the fiemap structure. The 100 the file so that the process making fiemap calls can determine when no 177 File systems wishing to support fiemap must implement a ->fiemap callback on 178 their inode_operations structure. The fs ->fiemap call is responsible for 179 defining its set of supported fiemap flags, and calling a helper function on [all …]
|
D | 00-INDEX | 66 fiemap.txt 67 - info on fiemap ioctl.
|
D | Locking | 64 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len); 96 fiemap: no
|
/linux-4.1.27/drivers/staging/lustre/lustre/lov/ |
D | lov_obd.c | 1612 static u64 fiemap_calc_fm_end_offset(struct ll_user_fiemap *fiemap, in fiemap_calc_fm_end_offset() argument 1616 u64 local_end = fiemap->fm_extents[0].fe_logical; in fiemap_calc_fm_end_offset() 1621 if (fiemap->fm_extent_count == 0 || in fiemap_calc_fm_end_offset() 1622 fiemap->fm_extents[0].fe_logical == 0) in fiemap_calc_fm_end_offset() 1632 if (oinfo->loi_ost_idx == fiemap->fm_extents[0].fe_device) { in fiemap_calc_fm_end_offset() 1709 static void fiemap_prepare_and_copy_exts(struct ll_user_fiemap *fiemap, in fiemap_prepare_and_copy_exts() argument 1723 to = (char *)fiemap + fiemap_count_to_size(current_extent); in fiemap_prepare_and_copy_exts() 1736 struct ll_user_fiemap *fiemap = val; in lov_fiemap() local 1756 if (fiemap_count_to_size(fm_key->fiemap.fm_extent_count) < buffer_size) in lov_fiemap() 1757 buffer_size = fiemap_count_to_size(fm_key->fiemap.fm_extent_count); in lov_fiemap() [all …]
|
/linux-4.1.27/drivers/staging/lustre/lustre/llite/ |
D | file.c | 1677 static int ll_do_fiemap(struct inode *inode, struct ll_user_fiemap *fiemap, in ll_do_fiemap() argument 1687 if (fiemap->fm_flags & ~LUSTRE_FIEMAP_FLAGS_COMPAT) { in ll_do_fiemap() 1688 fiemap->fm_flags &= ~LUSTRE_FIEMAP_FLAGS_COMPAT; in ll_do_fiemap() 1693 if (fiemap->fm_flags & FIEMAP_FLAG_SYNC) { in ll_do_fiemap() 1707 !(fiemap->fm_flags & FIEMAP_FLAG_DEVICE_ORDER)) { in ll_do_fiemap() 1725 fiemap->fm_mapped_extents = 0; in ll_do_fiemap() 1730 memcpy(&fm_key.fiemap, fiemap, sizeof(*fiemap)); in ll_do_fiemap() 1733 fiemap, lsm); in ll_do_fiemap() 3060 struct ll_user_fiemap *fiemap; in ll_fiemap() local 3063 num_bytes = sizeof(*fiemap) + (extent_count * in ll_fiemap() [all …]
|
/linux-4.1.27/include/uapi/linux/ |
D | fiemap.h | 27 struct fiemap { struct
|
D | fs.h | 167 #define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap)
|
D | Kbuild | 126 header-y += fiemap.h
|
/linux-4.1.27/fs/ocfs2/ |
D | symlink.c | 99 .fiemap = ocfs2_fiemap,
|
D | file.c | 2609 .fiemap = ocfs2_fiemap,
|
D | namei.c | 2899 .fiemap = ocfs2_fiemap,
|
/linux-4.1.27/fs/ext3/ |
D | file.c | 77 .fiemap = ext3_fiemap,
|
/linux-4.1.27/fs/ext2/ |
D | file.c | 120 .fiemap = ext2_fiemap,
|
/linux-4.1.27/fs/nilfs2/ |
D | file.c | 162 .fiemap = nilfs_fiemap,
|
D | namei.c | 565 .fiemap = nilfs_fiemap,
|
/linux-4.1.27/drivers/staging/lustre/lustre/ptlrpc/ |
D | pack_generic.c | 1989 void lustre_swab_fiemap(struct ll_user_fiemap *fiemap) in lustre_swab_fiemap() argument 1993 __swab64s(&fiemap->fm_start); in lustre_swab_fiemap() 1994 __swab64s(&fiemap->fm_length); in lustre_swab_fiemap() 1995 __swab32s(&fiemap->fm_flags); in lustre_swab_fiemap() 1996 __swab32s(&fiemap->fm_mapped_extents); in lustre_swab_fiemap() 1997 __swab32s(&fiemap->fm_extent_count); in lustre_swab_fiemap() 1998 __swab32s(&fiemap->fm_reserved); in lustre_swab_fiemap() 2000 for (i = 0; i < fiemap->fm_mapped_extents; i++) in lustre_swab_fiemap() 2001 lustre_swab_fiemap_extent(&fiemap->fm_extents[i]); in lustre_swab_fiemap()
|
D | wiretest.c | 3753 LASSERTF((int)offsetof(struct ll_fiemap_info_key, fiemap) == 216, "found %lld\n", in lustre_assert_wire_constants() 3754 (long long)(int)offsetof(struct ll_fiemap_info_key, fiemap)); in lustre_assert_wire_constants() 3755 LASSERTF((int)sizeof(((struct ll_fiemap_info_key *)0)->fiemap) == 32, "found %lld\n", in lustre_assert_wire_constants() 3756 (long long)(int)sizeof(((struct ll_fiemap_info_key *)0)->fiemap)); in lustre_assert_wire_constants()
|
/linux-4.1.27/drivers/staging/lustre/lustre/osc/ |
D | osc_request.c | 2800 if (!(fm_key->fiemap.fm_flags & FIEMAP_FLAG_SYNC)) in osc_get_info() 2803 policy.l_extent.start = fm_key->fiemap.fm_start & in osc_get_info() 2806 if (OBD_OBJECT_EOF - fm_key->fiemap.fm_length <= in osc_get_info() 2807 fm_key->fiemap.fm_start + PAGE_CACHE_SIZE - 1) in osc_get_info() 2810 policy.l_extent.end = (fm_key->fiemap.fm_start + in osc_get_info() 2811 fm_key->fiemap.fm_length + in osc_get_info()
|
/linux-4.1.27/fs/gfs2/ |
D | inode.c | 1932 .fiemap = gfs2_fiemap, 1954 .fiemap = gfs2_fiemap, 1971 .fiemap = gfs2_fiemap,
|
/linux-4.1.27/fs/ext4/ |
D | file.c | 661 .fiemap = ext4_fiemap,
|
D | namei.c | 3907 .fiemap = ext4_fiemap,
|
/linux-4.1.27/fs/f2fs/ |
D | data.c | 1219 struct buffer_head *bh_result, int create, bool fiemap) in __get_data_block() argument 1249 if (dn.data_blkaddr == NEW_ADDR && !fiemap) in __get_data_block() 1285 if (dn.data_blkaddr == NEW_ADDR && !fiemap) in __get_data_block()
|
D | file.c | 663 .fiemap = f2fs_fiemap,
|
/linux-4.1.27/drivers/staging/lustre/lustre/include/lustre/ |
D | lustre_idl.h | 3347 struct ll_user_fiemap fiemap; member 3352 extern void lustre_swab_fiemap(struct ll_user_fiemap *fiemap);
|
/linux-4.1.27/fs/xfs/ |
D | xfs_iops.c | 1116 .fiemap = xfs_vn_fiemap,
|
/linux-4.1.27/include/linux/ |
D | fs.h | 1650 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, member
|
/linux-4.1.27/fs/btrfs/ |
D | inode.c | 9955 .fiemap = btrfs_fiemap,
|