[Cluster-devel] cluster/gfs2 tool/misc.c mkfs/gfs2_mkfs.h mkfs ...

adas at sourceware.org adas at sourceware.org
Thu Oct 26 18:42:26 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	adas at sourceware.org	2006-10-26 18:42:25

Modified files:
	gfs2/tool      : misc.c 
	gfs2/mkfs      : gfs2_mkfs.h main_jadd.c 

Log message:
	bz 211418. Modified gfs2_tool and gfs2_jadd to use the new inode flags in fs.h instead of deprecated iflags.h

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/tool/misc.c.diff?cvsroot=cluster&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/mkfs/gfs2_mkfs.h.diff?cvsroot=cluster&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/mkfs/main_jadd.c.diff?cvsroot=cluster&r1=1.9&r2=1.10

--- cluster/gfs2/tool/misc.c	2006/06/09 19:44:26	1.7
+++ cluster/gfs2/tool/misc.c	2006/10/26 18:42:25	1.8
@@ -28,7 +28,7 @@
 
 #define __user
 #include <linux/gfs2_ondisk.h>
-#include <linux/iflags.h>
+#include <linux/fs.h>
 
 #include "gfs2_tool.h"
 
@@ -158,7 +158,7 @@
 }
 
 /*
- * Use IFLAG_XXX defined in <linux/iflags.h> which correspond to
+ * Use FS_XXX_FL flags defined in <linux/fs.h> which correspond to
  * GFS2_DIF_XXX
  */
 static unsigned int 
@@ -167,17 +167,17 @@
 	if (strncmp(name, "system", 6) == 0)
 		return GFS2_DIF_SYSTEM;
 	else if (strncmp(name, "jdata", 5) == 0)
-		return IFLAG_JOURNAL_DATA;
+		return FS_JOURNAL_DATA_FL;
 	else if (strncmp(name, "directio", 8) == 0)
-		return IFLAG_DIRECTIO;
+		return FS_DIRECTIO_FL;
 	else if (strncmp(name, "immutable", 9) == 0)
-		return IFLAG_IMMUTABLE;
+		return FS_IMMUTABLE_FL;
 	else if (strncmp(name, "appendonly", 10) == 0)
-		return IFLAG_APPEND;
+		return FS_APPEND_FL;
 	else if (strncmp(name, "noatime", 7) == 0)
-		return IFLAG_NOATIME;
+		return FS_NOATIME_FL;
 	else if (strncmp(name, "sync", 4) == 0)
-		return IFLAG_SYNC;
+		return FS_SYNC_FL;
 	else 
 		return 0;
 }
@@ -208,18 +208,17 @@
 		die("unrecognized flag %s\n", argv[optind -1]);
 	
 	for (; optind < argc; optind++) {
-		fprintf(stdout, "opening %s\n", argv[optind]);
 		fd = open(argv[optind], O_RDONLY);
 		if (fd < 0)
 			die("can't open %s: %s\n", argv[optind], strerror(errno));
 		/* first get the existing flags on the file */
-		error = ioctl(fd, IFLAGS_GET_IOC, &newflags);
+		error = ioctl(fd, FS_IOC_GETFLAGS, &newflags);
 		if (error)
 			die("can't get flags on %s: %s\n", 
 			    argv[optind], strerror(errno));
 		newflags = set ? newflags | flag : newflags & ~flag;
 		/* new flags */
-		error = ioctl(fd, IFLAGS_SET_IOC, &newflags);
+		error = ioctl(fd, FS_IOC_SETFLAGS, &newflags);
 		if (error)
 			die("can't set flags on %s: %s\n", 
 			    argv[optind], strerror(errno));
--- cluster/gfs2/mkfs/gfs2_mkfs.h	2006/07/10 22:51:10	1.8
+++ cluster/gfs2/mkfs/gfs2_mkfs.h	2006/10/26 18:42:25	1.9
@@ -75,4 +75,52 @@
 #define do_lseek(fd, off) \
 	__do_lseek((fd), (off), __FILE__, __LINE__)
 
+/*
+ * The following inode IOCTL macros and inode flags 
+ * are copied from linux/fs.h, because we have duplicate 
+ * definition of symbols when we include both linux/fs.h and 
+ * sys/mount.h in our program
+ */
+
+#define FS_IOC_GETFLAGS                 _IOR('f', 1, long)
+#define FS_IOC_SETFLAGS                 _IOW('f', 2, long)
+#define FS_IOC_GETVERSION               _IOR('v', 1, long)
+#define FS_IOC_SETVERSION               _IOW('v', 2, long)
+#define FS_IOC32_GETFLAGS               _IOR('f', 1, int)
+#define FS_IOC32_SETFLAGS               _IOW('f', 2, int)
+#define FS_IOC32_GETVERSION             _IOR('v', 1, int)
+#define FS_IOC32_SETVERSION             _IOW('v', 2, int)
+
+/*
+ * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS)
+ */
+#define FS_SECRM_FL                     0x00000001 /* Secure deletion */
+#define FS_UNRM_FL                      0x00000002 /* Undelete */
+#define FS_COMPR_FL                     0x00000004 /* Compress file */
+#define FS_SYNC_FL                      0x00000008 /* Synchronous updates */
+#define FS_IMMUTABLE_FL                 0x00000010 /* Immutable file */
+#define FS_APPEND_FL                    0x00000020 /* writes to file may only append */
+#define FS_NODUMP_FL                    0x00000040 /* do not dump file */
+#define FS_NOATIME_FL                   0x00000080 /* do not update atime */
+/* Reserved for compression usage... */
+#define FS_DIRTY_FL                     0x00000100
+#define FS_COMPRBLK_FL                  0x00000200 /* One or more compressed clusters */
+#define FS_NOCOMP_FL                    0x00000400 /* Don't compress */
+#define FS_ECOMPR_FL                    0x00000800 /* Compression error */
+/* End compression flags --- maybe not all used */
+#define FS_BTREE_FL                     0x00001000 /* btree format dir */
+#define FS_INDEX_FL                     0x00001000 /* hash-indexed directory */
+#define FS_IMAGIC_FL                    0x00002000 /* AFS directory */
+#define FS_JOURNAL_DATA_FL              0x00004000 /* Reserved for ext3 */
+#define FS_NOTAIL_FL                    0x00008000 /* file tail should not be merged */
+#define FS_DIRSYNC_FL                   0x00010000 /* dirsync behaviour (directories only) */
+#define FS_TOPDIR_FL                    0x00020000 /* Top of directory hierarchies*/
+#define FS_EXTENT_FL                    0x00080000 /* Extents */
+#define FS_DIRECTIO_FL                  0x00100000 /* Use direct i/o */
+#define FS_RESERVED_FL                  0x80000000 /* reserved for ext2 lib */
+
+#define FS_FL_USER_VISIBLE              0x0003DFFF /* User visible flags */
+#define FS_FL_USER_MODIFIABLE           0x000380FF /* User modifiable flags */
+
+
 #endif /* __GFS2_MKFS_DOT_H__ */
--- cluster/gfs2/mkfs/main_jadd.c	2006/09/28 16:23:57	1.9
+++ cluster/gfs2/mkfs/main_jadd.c	2006/10/26 18:42:25	1.10
@@ -10,6 +10,7 @@
 #include <sys/file.h>
 #include <sys/vfs.h>
 #include <sys/mount.h>
+//#include <linux/fs.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <time.h>
@@ -17,7 +18,6 @@
 #include <stdarg.h>
 
 #include <linux/types.h>
-#include <linux/iflags.h>
 #include "libgfs2.h"
 #include "gfs2_mkfs.h"
 
@@ -38,14 +38,14 @@
         int err;
         uint32_t val;
 
-        err = ioctl(fd, IFLAGS_GET_IOC, &val);
+        err = ioctl(fd, FS_IOC_GETFLAGS, &val);
         if (err)
                 die("error doing get flags (%d): %s\n", err, strerror(errno));
         if (strcmp(value, "set") == 0)
-                val |= IFLAG_JOURNAL_DATA;
+                val |= FS_JOURNAL_DATA_FL;
         if (strcmp(value, "clear") == 0)
-                val &= ~IFLAG_JOURNAL_DATA;
-        err = ioctl(fd, IFLAGS_SET_IOC, &val);
+                val &= ~FS_JOURNAL_DATA_FL;
+        err = ioctl(fd, FS_IOC_SETFLAGS, &val);
         if (err)
                 die("error doing set flags (%d): %s\n", err, strerror(errno));
 }




More information about the Cluster-devel mailing list