rpms/kernel/FC-6 linux-2.6-gfs2-dlm.patch,1.24,1.25
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Fri Oct 20 22:26:36 UTC 2006
Author: davej
Update of /cvs/dist/rpms/kernel/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv16123
Modified Files:
linux-2.6-gfs2-dlm.patch
Log Message:
GFS2 shouldn't use obsolete iflags.h
linux-2.6-gfs2-dlm.patch:
a/include/linux/iflags.h | 102
fs/gfs2/ops_file.c | 76
include/linux/Kbuild | 1
include/linux/fs.h | 41
linux-2.6.18/CREDITS | 6
linux-2.6.18/Documentation/filesystems/gfs2.txt | 43
linux-2.6.18/MAINTAINERS | 18
linux-2.6.18/fs/Kconfig | 2
linux-2.6.18/fs/Makefile | 2
linux-2.6.18/fs/configfs/item.c | 2
linux-2.6.18/fs/dlm/Kconfig | 21
linux-2.6.18/fs/dlm/Makefile | 19
linux-2.6.18/fs/dlm/ast.c | 173 +
linux-2.6.18/fs/dlm/ast.h | 26
linux-2.6.18/fs/dlm/config.c | 789 ++++
linux-2.6.18/fs/dlm/config.h | 42
linux-2.6.18/fs/dlm/debug_fs.c | 387 ++
linux-2.6.18/fs/dlm/dir.c | 423 ++
linux-2.6.18/fs/dlm/dir.h | 30
linux-2.6.18/fs/dlm/dlm_internal.h | 543 +++
linux-2.6.18/fs/dlm/lock.c | 3871 ++++++++++++++++++++++++
linux-2.6.18/fs/dlm/lock.h | 62
linux-2.6.18/fs/dlm/lockspace.c | 717 ++++
linux-2.6.18/fs/dlm/lockspace.h | 25
linux-2.6.18/fs/dlm/lowcomms.c | 1238 +++++++
linux-2.6.18/fs/dlm/lowcomms.h | 26
linux-2.6.18/fs/dlm/lvb_table.h | 18
linux-2.6.18/fs/dlm/main.c | 97
linux-2.6.18/fs/dlm/member.c | 327 ++
linux-2.6.18/fs/dlm/member.h | 24
linux-2.6.18/fs/dlm/memory.c | 116
linux-2.6.18/fs/dlm/memory.h | 29
linux-2.6.18/fs/dlm/midcomms.c | 140
linux-2.6.18/fs/dlm/midcomms.h | 21
linux-2.6.18/fs/dlm/rcom.c | 472 ++
linux-2.6.18/fs/dlm/rcom.h | 24
linux-2.6.18/fs/dlm/recover.c | 765 ++++
linux-2.6.18/fs/dlm/recover.h | 34
linux-2.6.18/fs/dlm/recoverd.c | 290 +
linux-2.6.18/fs/dlm/recoverd.h | 24
linux-2.6.18/fs/dlm/requestqueue.c | 184 +
linux-2.6.18/fs/dlm/requestqueue.h | 22
linux-2.6.18/fs/dlm/user.c | 788 ++++
linux-2.6.18/fs/dlm/user.h | 16
linux-2.6.18/fs/dlm/util.c | 161
linux-2.6.18/fs/dlm/util.h | 22
linux-2.6.18/fs/gfs2/Kconfig | 44
linux-2.6.18/fs/gfs2/Makefile | 10
linux-2.6.18/fs/gfs2/acl.c | 309 +
linux-2.6.18/fs/gfs2/acl.h | 39
linux-2.6.18/fs/gfs2/bmap.c | 1220 +++++++
linux-2.6.18/fs/gfs2/bmap.h | 31
linux-2.6.18/fs/gfs2/daemon.c | 196 +
linux-2.6.18/fs/gfs2/daemon.h | 19
linux-2.6.18/fs/gfs2/dir.c | 1961 ++++++++++++
linux-2.6.18/fs/gfs2/dir.h | 79
linux-2.6.18/fs/gfs2/eaops.c | 230 +
linux-2.6.18/fs/gfs2/eaops.h | 30
linux-2.6.18/fs/gfs2/eattr.c | 1501 +++++++++
linux-2.6.18/fs/gfs2/eattr.h | 100
linux-2.6.18/fs/gfs2/gfs2.h | 31
linux-2.6.18/fs/gfs2/glock.c | 2231 +++++++++++++
linux-2.6.18/fs/gfs2/glock.h | 153
linux-2.6.18/fs/gfs2/glops.c | 564 +++
linux-2.6.18/fs/gfs2/glops.h | 25
linux-2.6.18/fs/gfs2/incore.h | 634 +++
linux-2.6.18/fs/gfs2/inode.c | 1339 ++++++++
linux-2.6.18/fs/gfs2/inode.h | 56
linux-2.6.18/fs/gfs2/lm.c | 217 +
linux-2.6.18/fs/gfs2/lm.h | 42
linux-2.6.18/fs/gfs2/locking.c | 184 +
linux-2.6.18/fs/gfs2/locking/dlm/Makefile | 3
linux-2.6.18/fs/gfs2/locking/dlm/lock.c | 524 +++
linux-2.6.18/fs/gfs2/locking/dlm/lock_dlm.h | 187 +
linux-2.6.18/fs/gfs2/locking/dlm/main.c | 64
linux-2.6.18/fs/gfs2/locking/dlm/mount.c | 255 +
linux-2.6.18/fs/gfs2/locking/dlm/plock.c | 301 +
linux-2.6.18/fs/gfs2/locking/dlm/sysfs.c | 226 +
linux-2.6.18/fs/gfs2/locking/dlm/thread.c | 359 ++
linux-2.6.18/fs/gfs2/locking/nolock/Makefile | 3
linux-2.6.18/fs/gfs2/locking/nolock/main.c | 246 +
linux-2.6.18/fs/gfs2/log.c | 578 +++
linux-2.6.18/fs/gfs2/log.h | 65
linux-2.6.18/fs/gfs2/lops.c | 809 +++++
linux-2.6.18/fs/gfs2/lops.h | 99
linux-2.6.18/fs/gfs2/main.c | 150
linux-2.6.18/fs/gfs2/meta_io.c | 753 ++++
linux-2.6.18/fs/gfs2/meta_io.h | 78
linux-2.6.18/fs/gfs2/mount.c | 214 +
linux-2.6.18/fs/gfs2/mount.h | 17
linux-2.6.18/fs/gfs2/ondisk.c | 308 +
linux-2.6.18/fs/gfs2/ops_address.c | 782 ++++
linux-2.6.18/fs/gfs2/ops_address.h | 22
linux-2.6.18/fs/gfs2/ops_dentry.c | 119
linux-2.6.18/fs/gfs2/ops_dentry.h | 17
linux-2.6.18/fs/gfs2/ops_export.c | 298 +
linux-2.6.18/fs/gfs2/ops_export.h | 22
linux-2.6.18/fs/gfs2/ops_file.c | 642 +++
linux-2.6.18/fs/gfs2/ops_file.h | 24
linux-2.6.18/fs/gfs2/ops_fstype.c | 943 +++++
linux-2.6.18/fs/gfs2/ops_fstype.h | 18
linux-2.6.18/fs/gfs2/ops_inode.c | 1151 +++++++
linux-2.6.18/fs/gfs2/ops_inode.h | 20
linux-2.6.18/fs/gfs2/ops_super.c | 468 ++
linux-2.6.18/fs/gfs2/ops_super.h | 17
linux-2.6.18/fs/gfs2/ops_vm.c | 184 +
linux-2.6.18/fs/gfs2/ops_vm.h | 18
linux-2.6.18/fs/gfs2/quota.c | 1226 +++++++
linux-2.6.18/fs/gfs2/quota.h | 35
linux-2.6.18/fs/gfs2/recovery.c | 570 +++
linux-2.6.18/fs/gfs2/recovery.h | 34
linux-2.6.18/fs/gfs2/rgrp.c | 1513 +++++++++
linux-2.6.18/fs/gfs2/rgrp.h | 69
linux-2.6.18/fs/gfs2/super.c | 976 ++++++
linux-2.6.18/fs/gfs2/super.h | 54
linux-2.6.18/fs/gfs2/sys.c | 583 +++
linux-2.6.18/fs/gfs2/sys.h | 27
linux-2.6.18/fs/gfs2/trans.c | 184 +
linux-2.6.18/fs/gfs2/trans.h | 39
linux-2.6.18/fs/gfs2/util.c | 245 +
linux-2.6.18/fs/gfs2/util.h | 170 +
linux-2.6.18/include/linux/Kbuild | 5
linux-2.6.18/include/linux/dlm.h | 302 +
linux-2.6.18/include/linux/dlm_device.h | 86
linux-2.6.18/include/linux/gfs2_ondisk.h | 443 ++
linux-2.6.18/include/linux/iflags.h | 102
linux-2.6.18/include/linux/kernel.h | 1
linux-2.6.18/include/linux/lm_interface.h | 273 +
linux-2.6.18/include/linux/lock_dlm_plock.h | 41
linux-2.6.18/mm/filemap.c | 6
linux-2.6.18/mm/readahead.c | 1
work_gfs/fs/gfs2/lops.c | 4
work_gfs/fs/gfs2/ops_address.c | 6
133 files changed, 40341 insertions(+), 142 deletions(-)
Index: linux-2.6-gfs2-dlm.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/linux-2.6-gfs2-dlm.patch,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- linux-2.6-gfs2-dlm.patch 12 Oct 2006 20:56:14 -0000 1.24
+++ linux-2.6-gfs2-dlm.patch 20 Oct 2006 22:26:33 -0000 1.25
@@ -40915,3 +40915,392 @@
SetPageUptodate(page);
+From davej Fri Oct 20 07:56:43 2006
+Return-Path: <swhiteho at redhat.com>
+X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on
+ pressure.kernelslacker.org
+X-Spam-Level:
+X-Spam-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,
+ UNPARSEABLE_RELAY autolearn=ham version=3.1.4
+Received: from pobox.devel.redhat.com [10.11.255.8]
+ by pressure.kernelslacker.org with IMAP (fetchmail-6.3.4)
+ for <davej at localhost> (single-drop); Fri, 20 Oct 2006 07:56:43 -0400 (EDT)
+Received: from pobox.devel.redhat.com ([unix socket])
+ by pobox.devel.redhat.com (Cyrus v2.2.12-Invoca-RPM-2.2.12-3.RHEL4.1) with LMTPA;
+ Fri, 20 Oct 2006 07:53:59 -0400
+X-Sieve: CMU Sieve 2.2
+Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
+ by pobox.devel.redhat.com (8.13.1/8.13.1) with ESMTP id k9KBrxWS008530
+ for <davej at pobox.devel.redhat.com>; Fri, 20 Oct 2006 07:53:59 -0400
+Received: from pobox.surrey.redhat.com (pobox.surrey.redhat.com [172.16.10.17])
+ by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id k9KBrwmY023405;
+ Fri, 20 Oct 2006 07:53:58 -0400
+Received: from [172.31.0.2] (vpn-14-25.rdu.redhat.com [10.11.14.25])
+ by pobox.surrey.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k9KBrp82003111;
+ Fri, 20 Oct 2006 12:53:52 +0100
+Subject: [RHEL5] GFS2 shouldn't use obsolete iflags.h (bz #211583)
+From: Steven Whitehouse <swhiteho at redhat.com>
+To: rhkernel-list at redhat.com
+Cc: teigland at redhat.com, Dave Jones <davej at redhat.com>,
+ Don Zickus <dzickus at redhat.com>
+Content-Type: text/plain
+Organization: Red Hat (UK) Ltd
+Date: Fri, 20 Oct 2006 12:55:04 +0100
+Message-Id: <1161345304.27980.217.camel at quoit.chygwyn.com>
+Mime-Version: 1.0
+X-Mailer: Evolution 2.2.2 (2.2.2-5)
+Content-Transfer-Encoding: 7bit
+Status: RO
+Content-Length: 11775
+Lines: 349
+
+Hi,
+
+In the GFS2 tree we were carrying a new header file, iflags.h, which
+contained fs independent flags used by a number of filesystems. David
+Howells beat me to the upstream merge though with a similar set of
+constants in fs.h.
+
+As a result the upstream version of GFS2 and indeed, all other
+filesystems now use the constants in fs.h, so that iflags.h only exists
+in RHEL5/FC-6 due to the base copy of the GFS2 in RHEL-6/FC-6 code being
+dated slightly before the upstream GFS2 merge.
+
+To avoid future problems with people using iflags.h (which is now
+obsolete), this patch removes it in favour of the flags in fs.h. I've
+borrowed only the part of David Howells' patch which adds the new
+constants to fs.h. There didn't seem any need to modify any other
+filesystems, after all the values are all the same and cannot change
+since they were set in stone by ext2/3.
+
+So this is the combination of two changes which are already upstream.
+The bugzilla is #211583
+
+Dave: You might want to take this for FC-6, although my main concern at
+the moment is RHEL-5.
+
+Steve.
+
+
+
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -217,6 +217,45 @@ extern int dir_notify_enable;
+ #define FIBMAP _IO(0x00,1) /* bmap access */
+ #define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */
+
++#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_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 */
++
++
+ #define SYNC_FILE_RANGE_WAIT_BEFORE 1
+ #define SYNC_FILE_RANGE_WRITE 2
+ #define SYNC_FILE_RANGE_WAIT_AFTER 4
+From: Steven Whitehouse <swhiteho at redhat.com>
+Date: Mon, 2 Oct 2006 15:24:43 +0000 (-0400)
+Subject: [GFS2] Remove iflags.h, use FS_
+X-Git-Tag: v2.6.19-rc1
+X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/steve/gfs2-2.6-fixes.git;a=commitdiff;h=128e5ebaf8abbda375bba82690b09630003c9213
+
+[GFS2] Remove iflags.h, use FS_
+
+Update GFS2 in the light of David Howells' patch:
+
+[PATCH] BLOCK: Move common FS-specific ioctls to linux/fs.h [try #6]
+36695673b012096228ebdc1b39a6a5850daa474e
+
+which calls the filesystem independant flags FS_..._FL. As a result
+we no longer need the flags.h file and the conversion routine is
+moved into the GFS2 source code.
+
+Userland programs which used to include iflags.h should now include
+fs.h and use the new flag names.
+
+Signed-off-by: Steven Whitehouse <swhiteho at redhat.com>
+---
+
+--- a/fs/gfs2/ops_file.c
++++ b/fs/gfs2/ops_file.c
+@@ -21,7 +21,6 @@
+ #include <linux/gfs2_ondisk.h>
+ #include <linux/ext2_fs.h>
+ #include <linux/crc32.h>
+-#include <linux/iflags.h>
+ #include <linux/lm_interface.h>
+ #include <asm/uaccess.h>
+
+@@ -201,27 +200,48 @@ static int gfs2_readdir(struct file *fil
+ return error;
+ }
+
+-
+-static const u32 iflags_to_gfs2[32] = {
+- [iflag_Sync] = GFS2_DIF_SYNC,
+- [iflag_Immutable] = GFS2_DIF_IMMUTABLE,
+- [iflag_Append] = GFS2_DIF_APPENDONLY,
+- [iflag_NoAtime] = GFS2_DIF_NOATIME,
+- [iflag_Index] = GFS2_DIF_EXHASH,
+- [iflag_JournalData] = GFS2_DIF_JDATA,
+- [iflag_DirectIO] = GFS2_DIF_DIRECTIO,
++/**
++ * fsflags_cvt
++ * @table: A table of 32 u32 flags
++ * @val: a 32 bit value to convert
++ *
++ * This function can be used to convert between fsflags values and
++ * GFS2's own flags values.
++ *
++ * Returns: the converted flags
++ */
++static u32 fsflags_cvt(const u32 *table, u32 val)
++{
++ u32 res = 0;
++ while(val) {
++ if (val & 1)
++ res |= *table;
++ table++;
++ val >>= 1;
++ }
++ return res;
++}
++
++static const u32 fsflags_to_gfs2[32] = {
++ [3] = GFS2_DIF_SYNC,
++ [4] = GFS2_DIF_IMMUTABLE,
++ [5] = GFS2_DIF_APPENDONLY,
++ [7] = GFS2_DIF_NOATIME,
++ [12] = GFS2_DIF_EXHASH,
++ [14] = GFS2_DIF_JDATA,
++ [20] = GFS2_DIF_DIRECTIO,
+ };
+
+-static const u32 gfs2_to_iflags[32] = {
+- [gfs2fl_Sync] = IFLAG_SYNC,
+- [gfs2fl_Immutable] = IFLAG_IMMUTABLE,
+- [gfs2fl_AppendOnly] = IFLAG_APPEND,
+- [gfs2fl_NoAtime] = IFLAG_NOATIME,
+- [gfs2fl_ExHash] = IFLAG_INDEX,
+- [gfs2fl_Jdata] = IFLAG_JOURNAL_DATA,
+- [gfs2fl_Directio] = IFLAG_DIRECTIO,
+- [gfs2fl_InheritDirectio] = IFLAG_DIRECTIO,
+- [gfs2fl_InheritJdata] = IFLAG_JOURNAL_DATA,
++static const u32 gfs2_to_fsflags[32] = {
++ [gfs2fl_Sync] = FS_SYNC_FL,
++ [gfs2fl_Immutable] = FS_IMMUTABLE_FL,
++ [gfs2fl_AppendOnly] = FS_APPEND_FL,
++ [gfs2fl_NoAtime] = FS_NOATIME_FL,
++ [gfs2fl_ExHash] = FS_INDEX_FL,
++ [gfs2fl_Jdata] = FS_JOURNAL_DATA_FL,
++ [gfs2fl_Directio] = FS_DIRECTIO_FL,
++ [gfs2fl_InheritDirectio] = FS_DIRECTIO_FL,
++ [gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL,
+ };
+
+ static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
+@@ -230,15 +250,15 @@ static int gfs2_get_flags(struct file *f
+ struct gfs2_inode *ip = GFS2_I(inode);
+ struct gfs2_holder gh;
+ int error;
+- u32 iflags;
++ u32 fsflags;
+
+ gfs2_holder_init(ip->i_gl, LM_ST_SHARED, GL_ATIME, &gh);
+ error = gfs2_glock_nq_m_atime(1, &gh);
+ if (error)
+ return error;
+
+- iflags = iflags_cvt(gfs2_to_iflags, ip->i_di.di_flags);
+- if (put_user(iflags, ptr))
++ fsflags = fsflags_cvt(gfs2_to_fsflags, ip->i_di.di_flags);
++ if (put_user(fsflags, ptr))
+ error = -EFAULT;
+
+ gfs2_glock_dq_m(1, &gh);
+@@ -327,19 +347,19 @@ out:
+
+ static int gfs2_set_flags(struct file *filp, u32 __user *ptr)
+ {
+- u32 iflags, gfsflags;
+- if (get_user(iflags, ptr))
++ u32 fsflags, gfsflags;
++ if (get_user(fsflags, ptr))
+ return -EFAULT;
+- gfsflags = iflags_cvt(iflags_to_gfs2, iflags);
++ gfsflags = fsflags_cvt(fsflags_to_gfs2, fsflags);
+ return do_gfs2_set_flags(filp, gfsflags, ~0);
+ }
+
+ static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
+ {
+ switch(cmd) {
+- case IFLAGS_GET_IOC:
++ case FS_IOC_GETFLAGS:
+ return gfs2_get_flags(filp, (u32 __user *)arg);
+- case IFLAGS_SET_IOC:
++ case FS_IOC_SETFLAGS:
+ return gfs2_set_flags(filp, (u32 __user *)arg);
+ }
+ return -ENOTTY;
+--- a/include/linux/Kbuild
++++ b/include/linux/Kbuild
+@@ -223,7 +223,6 @@ unifdef-y += hpet.h
+ unifdef-y += i2c.h
+ unifdef-y += i2o-dev.h
+ unifdef-y += icmpv6.h
+-unifdef-y += iflags.h
+ unifdef-y += if_bridge.h
+ unifdef-y += if_ec.h
+ unifdef-y += if_eql.h
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -250,6 +250,8 @@ extern int dir_notify_enable;
+ #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 */
+--- a/include/linux/iflags.h
++++ /dev/null
+@@ -1,102 +0,0 @@
+-#ifndef _LINUX_IFLAGS_H
+-#define _LINUX_IFLAGS_H
+-
+-/*
+- * A universal set of inode flags.
+- *
+- * Originally taken from ext2/3 with additions for other filesystems.
+- * Filesystems supporting this interface should interoperate with
+- * the lsattr and chattr command line tools.
+- *
+- * This interface is supported in whole or in part by:
+- * ext2
+- * ext3
+- * xfs
+- * jfs
+- * gfs2
+- *
+- */
+-
+-#define IFLAGS_GET_IOC _IOR('f', 1, long)
+-#define IFLAGS_SET_IOC _IOW('f', 2, long)
+-
+-/*
+- * These values are provided for use as indices of an array
+- * for use with the iflags_cvt function below
+- */
+-enum {
+- iflag_SecureRm = 0, /* Secure deletion */
+- iflag_Unrm = 1, /* Undelete */
+- iflag_Compress = 2, /* Compress file */
+- iflag_Sync = 3, /* Synchronous updates */
+- iflag_Immutable = 4, /* Immutable */
+- iflag_Append = 5, /* Append */
+- iflag_NoDump = 6, /* Don't dump file */
+- iflag_NoAtime = 7, /* No atime updates */
+- /* Reserved for compression usage */
+- iflag_Dirty = 8,
+- iflag_ComprBlk = 9, /* One or more compressed clusters */
+- iflag_NoComp = 10, /* Don't compress */
+- iflag_Ecompr = 11, /* Compression error */
+- /* End of compression flags */
+- iflag_Btree = 12, /* btree format dir */
+- iflag_Index = 12, /* hash-indexed directory */
+- iflag_Imagic = 13, /* AFS directory */
+- iflag_JournalData = 14, /* file data should be journaled */
+- iflag_NoTail = 15, /* file tail should not be merged */
+- iflag_DirSync = 16, /* dirsync behaviour */
+- iflag_TopDir = 17, /* Top of directory hierarchies */
+- iflag_Extent = 19, /* Extents */
+- iflag_DirectIO = 20, /* Always use direct I/O on this file */
+- iflag_Reserved = 31 /* reserved for ext2/3 lib */
+-};
+-
+-#define __IFL(x) (1<<(iflag_##x))
+-#define IFLAG_SECRM __IFL(SecureRm) /* 0x00000001 */
+-#define IFLAG_UNRM __IFL(Unrm) /* 0x00000002 */
+-#define IFLAG_COMPR __IFL(Compr) /* 0x00000004 */
+-#define IFLAG_SYNC __IFL(Sync) /* 0x00000008 */
+-#define IFLAG_IMMUTABLE __IFL(Immutable) /* 0x00000010 */
+-#define IFLAG_APPEND __IFL(Append) /* 0x00000020 */
+-#define IFLAG_NODUMP __IFL(NoDump) /* 0x00000040 */
+-#define IFLAG_NOATIME __IFL(NoAtime) /* 0x00000080 */
+-#define IFLAG_DIRTY __IFL(Dirty) /* 0x00000100 */
+-#define IFLAG_COMPRBLK __IFL(ComprBlk) /* 0x00000200 */
+-#define IFLAG_NOCOMP __IFL(NoComp) /* 0x00000400 */
+-#define IFLAG_ECOMPR __IFL(Ecompr) /* 0x00000800 */
+-#define IFLAG_BTREE __IFL(Btree) /* 0x00001000 */
+-#define IFLAG_INDEX __IFL(Index) /* 0x00001000 */
+-#define IFLAG_IMAGIC __IFL(Imagic) /* 0x00002000 */
+-#define IFLAG_JOURNAL_DATA __IFL(JournalData) /* 0x00004000 */
+-#define IFLAG_NOTAIL __IFL(NoTail) /* 0x00008000 */
+-#define IFLAG_DIRSYNC __IFL(DirSync) /* 0x00010000 */
+-#define IFLAG_TOPDIR __IFL(TopDir) /* 0x00020000 */
+-#define IFLAG_EXTENT __IFL(Extent) /* 0x00080000 */
+-#define IFLAG_DIRECTIO __IFL(DirectIO) /* 0x00100000 */
+-#define IFLAG_RESERVED __IFL(Reserved) /* 0x80000000 */
+-
+-#ifdef __KERNEL__
+-/**
+- * iflags_cvt
+- * @table: A table of 32 u32 flags
+- * @val: a 32 bit value to convert
+- *
+- * This function can be used to convert between IFLAGS values and
+- * the filesystem's own flags values.
+- *
+- * Returns: the converted flags
+- */
+-static inline u32 iflags_cvt(const u32 *table, u32 val)
+-{
+- u32 res = 0;
+- while(val) {
+- if (val & 1)
+- res |= *table;
+- table++;
+- val >>= 1;
+- }
+- return res;
+-}
+-#endif /* __KERNEL__ */
+-
+-#endif /* _LINUX_IFLAGS_H */
+
+
More information about the fedora-cvs-commits
mailing list