[PATCH 4/4] xfsprogs: Adding XFS_IOC_FIEMAPFS ioctl for use in xfs_spaceman
Dhruvesh Rathore
adrscube at gmail.com
Thu Jan 29 07:31:02 CST 2015
This patch is concerned with the changes to be done in userspace code for
turning FS_IOC_FIEMAPFS present in the earlier version of xfs_spaceman
into an XFS specific ioctl called XFS_IOC_FIEMAPFS, which uses all existing
fiemap insfrastructure.
By introducing XFS_IOC_FIMEAPFS ioctl, it can be seperated from file based
fiemap commands and allows us to review it and push it as we need, making the
process much simpler.
----------------------------------------------------------------------------------------
Signed-off-by: Dhruvesh Rathore <dhruvesh_r at outlook.com>
Signed-off-by: Amey Ruikar <ameyruikar at yahoo.com>
Signed-off-by: Somdeep Dey <somdeepdey10 at gmail.com>
---
include/xfs_fs.h | 1 +
spaceman/freesp.c | 6 +++---
2 files changed, 4 insertions(+), 3 deletions(-)
--- a/include/xfs_fs.h 2015-01-29 15:26:50.954401773 +0530
+++ b/include/xfs_fs.h 2015-01-29 11:29:59.531652554 +0530
@@ -505,6 +505,7 @@
#define XFS_IOC_DIOINFO _IOR ('X', 30, struct dioattr)
#define XFS_IOC_FSGETXATTR _IOR ('X', 31, struct fsxattr)
#define XFS_IOC_FSSETXATTR _IOW ('X', 32, struct fsxattr)
+#define XFS_IOC_FIEMAPFS _IOWR('X', 33, struct fiemap)
#define XFS_IOC_ALLOCSP64 _IOW ('X', 36, struct xfs_flock64)
#define XFS_IOC_FREESP64 _IOW ('X', 37, struct xfs_flock64)
#define XFS_IOC_GETBMAP _IOWR('X', 38, struct getbmap)
----------------------------------------------------------------------------------------
--- a/spaceman/freesp.c 2015-01-29 15:27:03.737227849 +0530
+++ b/spaceman/freesp.c 2015-01-29 15:23:48.865235168 +0530
@@ -31,7 +31,7 @@
#define FIEMAPFS_FLAG_FREESP_SIZE_HINT 0x20000000
#define FIEMAPFS_FLAG_FREESP_CONTINUE 0x10000000
-#define FS_IOC_FIEMAPFS _IOWR('f', 12, struct fiemap)
+#define XFS_IOC_FIEMAPFS _IOWR('X', 33, struct fiemap)
#endif
typedef struct histent
@@ -201,9 +201,9 @@
fiemap->fm_length = length;
fiemap->fm_extent_count = NR_EXTENTS;
- ret = ioctl(file->fd, FS_IOC_FIEMAPFS, (unsigned long)fiemap);
+ ret = xfsctl(file->name,file->fd, XFS_IOC_FIEMAPFS, (unsigned long)fiemap);
if (ret < 0) {
- fprintf(stderr, "%s: ioctl(FS_IOC_FIEMAPFS) [\"%s\"]: "
+ fprintf(stderr, "%s: xfsctl(XFS_IOC_FIEMAPFS) [\"%s\"]: "
"%s\n", progname, file->name, strerror(errno));
free(fiemap);
exitcode = 1;
----------------------------------------------------------------------------------------
More information about the xfs
mailing list