From mboxrd@z Thu Jan 1 00:00:00 1970 From: adas@sourceware.org Date: 26 Oct 2006 18:42:26 -0000 Subject: [Cluster-devel] cluster/gfs2 tool/misc.c mkfs/gfs2_mkfs.h mkfs ... Message-ID: <20061026184226.30925.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 -#include +#include #include "gfs2_tool.h" @@ -158,7 +158,7 @@ } /* - * Use IFLAG_XXX defined in which correspond to + * Use FS_XXX_FL flags defined in 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 #include #include +//#include #include #include #include @@ -17,7 +18,6 @@ #include #include -#include #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)); }