xfs
[Top] [All Lists]

[PATCH 4/4] xfsprogs: Adding XFS_IOC_FIEMAPFS ioctl for use in xfs_space

To: <xfs@xxxxxxxxxxx>
Subject: [PATCH 4/4] xfsprogs: Adding XFS_IOC_FIEMAPFS ioctl for use in xfs_spaceman
From: Dhruvesh Rathore <adrscube@xxxxxxxxx>
Date: Thu, 29 Jan 2015 19:01:02 +0530
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:from:date:subject:to; bh=38Uz5EY3HLB2w+YKKTUt5Y42OAMhqx1g/eTC7Yu6DPk=; b=BrdnNxU3SrMZ6Y0deV/GiH8yP1LamPpnxTCRGkAnTTK3bMfPZbYY5FXgLRuGuxc1+D uPAmifG9sKLnji6/0VjkHeDhYEl7IJ962vhdAY2u0mlFRPFrW0yZSfdZNjBekE6KBVj9 5TqxuQOQl9+mTcp99F4sojCGKGN68x+psxgFAgDrXzYuOZ0vB9q5DQz7U64CaPx8ktza P/tnRP2M8UJKQ999mpr2perjSI0wbjOe1Aw8kU5la9HHUiTVHx5ASpO1NphfQwsk84gq ldLRhnLeHJZpKLiFkDZbF0gYBIAb9w6Z8LeWuD76B2UsetY/ljVElQdQDLF8yBKXKDdo PQAA==
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@xxxxxxxxxxx>
Signed-off-by: Amey Ruikar <ameyruikar@xxxxxxxxx>
Signed-off-by: Somdeep Dey <somdeepdey10@xxxxxxxxx>
---
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;

----------------------------------------------------------------------------------------

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH 4/4] xfsprogs: Adding XFS_IOC_FIEMAPFS ioctl for use in xfs_spaceman, Dhruvesh Rathore <=