]> err.no Git - linux-2.6/commitdiff
[XFS] Sort out some cosmetic differences between XFS trees.
authorNathan Scott <nathans@sgi.com>
Mon, 5 Sep 2005 01:47:01 +0000 (11:47 +1000)
committerNathan Scott <nathans@sgi.com>
Mon, 5 Sep 2005 01:47:01 +0000 (11:47 +1000)
SGI-PV: 904196
SGI-Modid: xfs-linux-melb:xfs-kern:23719a

Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/Makefile
fs/xfs/Makefile-linux-2.6 [new file with mode: 0644]
fs/xfs/linux-2.6/xfs_iops.c
fs/xfs/linux-2.6/xfs_linux.h
fs/xfs/quota/Makefile [new file with mode: 0644]
fs/xfs/quota/Makefile-linux-2.6 [new file with mode: 0644]
fs/xfs/support/debug.c
fs/xfs/xfs_vfsops.c

index d3ff78354638d671be016821323e4a3279f47446..49e3e7e5e3dc90902ae5ffcaed0fd3256fef3e52 100644 (file)
@@ -1,150 +1 @@
-#
-# Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of version 2 of the GNU General Public License as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it would be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#
-# Further, this software is distributed without any warranty that it is
-# free of the rightful claim of any third person regarding infringement
-# or the like.  Any license provided herein, whether implied or
-# otherwise, applies only to this software file.  Patent licenses, if
-# any, provided herein do not apply to combinations of this program with
-# other software, or any other product whatsoever.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston MA 02111-1307, USA.
-#
-# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
-# Mountain View, CA  94043, or:
-#
-# http://www.sgi.com
-#
-# For further information regarding this notice, see:
-#
-# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
-#
-
-EXTRA_CFLAGS +=         -Ifs/xfs -Ifs/xfs/linux-2.6 -funsigned-char
-
-ifeq ($(CONFIG_XFS_DEBUG),y)
-       EXTRA_CFLAGS += -g -DSTATIC="" -DDEBUG
-       EXTRA_CFLAGS += -DPAGEBUF_LOCK_TRACKING
-endif
-ifeq ($(CONFIG_XFS_TRACE),y)
-       EXTRA_CFLAGS += -DXFS_ALLOC_TRACE
-       EXTRA_CFLAGS += -DXFS_ATTR_TRACE
-       EXTRA_CFLAGS += -DXFS_BLI_TRACE
-       EXTRA_CFLAGS += -DXFS_BMAP_TRACE
-       EXTRA_CFLAGS += -DXFS_BMBT_TRACE
-       EXTRA_CFLAGS += -DXFS_DIR_TRACE
-       EXTRA_CFLAGS += -DXFS_DIR2_TRACE
-       EXTRA_CFLAGS += -DXFS_DQUOT_TRACE
-       EXTRA_CFLAGS += -DXFS_ILOCK_TRACE
-       EXTRA_CFLAGS += -DXFS_LOG_TRACE
-       EXTRA_CFLAGS += -DXFS_RW_TRACE
-       EXTRA_CFLAGS += -DPAGEBUF_TRACE
-       EXTRA_CFLAGS += -DXFS_VNODE_TRACE
-endif
-
-obj-$(CONFIG_XFS_FS)           += xfs.o
-
-xfs-$(CONFIG_XFS_QUOTA)                += $(addprefix quota/, \
-                                  xfs_dquot.o \
-                                  xfs_dquot_item.o \
-                                  xfs_trans_dquot.o \
-                                  xfs_qm_syscalls.o \
-                                  xfs_qm_bhv.o \
-                                  xfs_qm.o)
-ifeq ($(CONFIG_XFS_QUOTA),y)
-xfs-$(CONFIG_PROC_FS)          += quota/xfs_qm_stats.o
-endif
-
-xfs-$(CONFIG_XFS_RT)           += xfs_rtalloc.o
-xfs-$(CONFIG_XFS_POSIX_ACL)    += xfs_acl.o
-xfs-$(CONFIG_PROC_FS)          += linux-2.6/xfs_stats.o
-xfs-$(CONFIG_SYSCTL)           += linux-2.6/xfs_sysctl.o
-xfs-$(CONFIG_COMPAT)           += linux-2.6/xfs_ioctl32.o
-xfs-$(CONFIG_XFS_EXPORT)       += linux-2.6/xfs_export.o
-
-
-xfs-y                          += xfs_alloc.o \
-                                  xfs_alloc_btree.o \
-                                  xfs_attr.o \
-                                  xfs_attr_leaf.o \
-                                  xfs_behavior.o \
-                                  xfs_bit.o \
-                                  xfs_bmap.o \
-                                  xfs_bmap_btree.o \
-                                  xfs_btree.o \
-                                  xfs_buf_item.o \
-                                  xfs_da_btree.o \
-                                  xfs_dir.o \
-                                  xfs_dir2.o \
-                                  xfs_dir2_block.o \
-                                  xfs_dir2_data.o \
-                                  xfs_dir2_leaf.o \
-                                  xfs_dir2_node.o \
-                                  xfs_dir2_sf.o \
-                                  xfs_dir_leaf.o \
-                                  xfs_error.o \
-                                  xfs_extfree_item.o \
-                                  xfs_fsops.o \
-                                  xfs_ialloc.o \
-                                  xfs_ialloc_btree.o \
-                                  xfs_iget.o \
-                                  xfs_inode.o \
-                                  xfs_inode_item.o \
-                                  xfs_iocore.o \
-                                  xfs_iomap.o \
-                                  xfs_itable.o \
-                                  xfs_dfrag.o \
-                                  xfs_log.o \
-                                  xfs_log_recover.o \
-                                  xfs_macros.o \
-                                  xfs_mount.o \
-                                  xfs_rename.o \
-                                  xfs_trans.o \
-                                  xfs_trans_ail.o \
-                                  xfs_trans_buf.o \
-                                  xfs_trans_extfree.o \
-                                  xfs_trans_inode.o \
-                                  xfs_trans_item.o \
-                                  xfs_utils.o \
-                                  xfs_vfsops.o \
-                                  xfs_vnodeops.o \
-                                  xfs_rw.o \
-                                  xfs_dmops.o \
-                                  xfs_qmops.o
-
-xfs-$(CONFIG_XFS_TRACE)                += xfs_dir2_trace.o
-
-# Objects in linux-2.6/
-xfs-y                          += $(addprefix linux-2.6/, \
-                                  kmem.o \
-                                  xfs_aops.o \
-                                  xfs_buf.o \
-                                  xfs_file.o \
-                                  xfs_fs_subr.o \
-                                  xfs_globals.o \
-                                  xfs_ioctl.o \
-                                  xfs_iops.o \
-                                  xfs_lrw.o \
-                                  xfs_super.o \
-                                  xfs_vfs.o \
-                                  xfs_vnode.o)
-
-# Objects in support/
-xfs-y                          += $(addprefix support/, \
-                                  debug.o \
-                                  move.o \
-                                  qsort.o \
-                                  uuid.o)
-
-xfs-$(CONFIG_XFS_TRACE)                += support/ktrace.o
-
+include $(TOPDIR)/fs/xfs/Makefile-linux-$(VERSION).$(PATCHLEVEL)
diff --git a/fs/xfs/Makefile-linux-2.6 b/fs/xfs/Makefile-linux-2.6
new file mode 100644 (file)
index 0000000..fbfcbe5
--- /dev/null
@@ -0,0 +1,141 @@
+#
+# Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+
+EXTRA_CFLAGS +=         -Ifs/xfs -Ifs/xfs/linux-2.6 -funsigned-char
+
+XFS_LINUX := linux-2.6
+
+ifeq ($(CONFIG_XFS_DEBUG),y)
+       EXTRA_CFLAGS += -g -DSTATIC="" -DDEBUG
+       EXTRA_CFLAGS += -DPAGEBUF_LOCK_TRACKING
+endif
+ifeq ($(CONFIG_XFS_TRACE),y)
+       EXTRA_CFLAGS += -DXFS_ALLOC_TRACE
+       EXTRA_CFLAGS += -DXFS_ATTR_TRACE
+       EXTRA_CFLAGS += -DXFS_BLI_TRACE
+       EXTRA_CFLAGS += -DXFS_BMAP_TRACE
+       EXTRA_CFLAGS += -DXFS_BMBT_TRACE
+       EXTRA_CFLAGS += -DXFS_DIR_TRACE
+       EXTRA_CFLAGS += -DXFS_DIR2_TRACE
+       EXTRA_CFLAGS += -DXFS_DQUOT_TRACE
+       EXTRA_CFLAGS += -DXFS_ILOCK_TRACE
+       EXTRA_CFLAGS += -DXFS_LOG_TRACE
+       EXTRA_CFLAGS += -DXFS_RW_TRACE
+       EXTRA_CFLAGS += -DPAGEBUF_TRACE
+       EXTRA_CFLAGS += -DXFS_VNODE_TRACE
+endif
+
+obj-$(CONFIG_XFS_FS)           += xfs.o
+obj-$(CONFIG_XFS_QUOTA)                += quota/
+
+xfs-$(CONFIG_XFS_RT)           += xfs_rtalloc.o
+xfs-$(CONFIG_XFS_POSIX_ACL)    += xfs_acl.o
+xfs-$(CONFIG_PROC_FS)          += $(XFS_LINUX)/xfs_stats.o
+xfs-$(CONFIG_SYSCTL)           += $(XFS_LINUX)/xfs_sysctl.o
+xfs-$(CONFIG_COMPAT)           += $(XFS_LINUX)/xfs_ioctl32.o
+xfs-$(CONFIG_XFS_EXPORT)       += $(XFS_LINUX)/xfs_export.o
+
+
+xfs-y                          += xfs_alloc.o \
+                                  xfs_alloc_btree.o \
+                                  xfs_attr.o \
+                                  xfs_attr_leaf.o \
+                                  xfs_behavior.o \
+                                  xfs_bit.o \
+                                  xfs_bmap.o \
+                                  xfs_bmap_btree.o \
+                                  xfs_btree.o \
+                                  xfs_buf_item.o \
+                                  xfs_da_btree.o \
+                                  xfs_dir.o \
+                                  xfs_dir2.o \
+                                  xfs_dir2_block.o \
+                                  xfs_dir2_data.o \
+                                  xfs_dir2_leaf.o \
+                                  xfs_dir2_node.o \
+                                  xfs_dir2_sf.o \
+                                  xfs_dir_leaf.o \
+                                  xfs_error.o \
+                                  xfs_extfree_item.o \
+                                  xfs_fsops.o \
+                                  xfs_ialloc.o \
+                                  xfs_ialloc_btree.o \
+                                  xfs_iget.o \
+                                  xfs_inode.o \
+                                  xfs_inode_item.o \
+                                  xfs_iocore.o \
+                                  xfs_iomap.o \
+                                  xfs_itable.o \
+                                  xfs_dfrag.o \
+                                  xfs_log.o \
+                                  xfs_log_recover.o \
+                                  xfs_macros.o \
+                                  xfs_mount.o \
+                                  xfs_rename.o \
+                                  xfs_trans.o \
+                                  xfs_trans_ail.o \
+                                  xfs_trans_buf.o \
+                                  xfs_trans_extfree.o \
+                                  xfs_trans_inode.o \
+                                  xfs_trans_item.o \
+                                  xfs_utils.o \
+                                  xfs_vfsops.o \
+                                  xfs_vnodeops.o \
+                                  xfs_rw.o \
+                                  xfs_dmops.o \
+                                  xfs_qmops.o
+
+xfs-$(CONFIG_XFS_TRACE)                += xfs_dir2_trace.o
+
+# Objects in linux/
+xfs-y                          += $(addprefix $(XFS_LINUX)/, \
+                                  kmem.o \
+                                  xfs_aops.o \
+                                  xfs_buf.o \
+                                  xfs_file.o \
+                                  xfs_fs_subr.o \
+                                  xfs_globals.o \
+                                  xfs_ioctl.o \
+                                  xfs_iops.o \
+                                  xfs_lrw.o \
+                                  xfs_super.o \
+                                  xfs_vfs.o \
+                                  xfs_vnode.o)
+
+# Objects in support/
+xfs-y                          += $(addprefix support/, \
+                                  debug.o \
+                                  move.o \
+                                  uuid.o)
+
+xfs-$(CONFIG_XFS_TRACE)                += support/ktrace.o
+
index d237cc5be767d56abeaec981f501a9cc8ed34c2e..77708a8c9f87b78afc74125879071a2617493e88 100644 (file)
@@ -423,9 +423,14 @@ linvfs_follow_link(
        return NULL;
 }
 
-static void linvfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
+STATIC void
+linvfs_put_link(
+       struct dentry   *dentry,
+       struct nameidata *nd,
+       void            *p)
 {
-       char *s = nd_get_link(nd);
+       char            *s = nd_get_link(nd);
+
        if (!IS_ERR(s))
                kfree(s);
 }
index 1c63fd3118d755838489a71cfecdab86882912ee..68c5d885ed9c214e737975a3d8a37379f8dbf834 100644 (file)
@@ -64,7 +64,6 @@
 #include <sema.h>
 #include <time.h>
 
-#include <support/qsort.h>
 #include <support/ktrace.h>
 #include <support/debug.h>
 #include <support/move.h>
@@ -255,11 +254,18 @@ static inline void set_buffer_unwritten_io(struct buffer_head *bh)
 #define MAX(a,b)       (max(a,b))
 #define howmany(x, y)  (((x)+((y)-1))/(y))
 #define roundup(x, y)  ((((x)+((y)-1))/(y))*(y))
+#define qsort(a,n,s,fn)        sort(a,n,s,fn,NULL)
 
+/*
+ * Various platform dependent calls that don't fit anywhere else
+ */
 #define xfs_stack_trace()      dump_stack()
-
 #define xfs_itruncate_data(ip, off)    \
        (-vmtruncate(LINVFS_GET_IP(XFS_ITOV(ip)), (off)))
+#define xfs_statvfs_fsid(statp, mp)    \
+       ({ u64 id = huge_encode_dev((mp)->m_dev);       \
+          __kernel_fsid_t *fsid = &(statp)->f_fsid;    \
+       (fsid->val[0] = (u32)id, fsid->val[1] = (u32)(id >> 32)); })
 
 
 /* Move the kernel do_div definition off to one side */
@@ -372,6 +378,4 @@ static inline __uint64_t roundup_64(__uint64_t x, __uint32_t y)
        return(x * y);
 }
 
-#define qsort(a, n, s, cmp) sort(a, n, s, cmp, NULL)
-
 #endif /* __XFS_LINUX__ */
diff --git a/fs/xfs/quota/Makefile b/fs/xfs/quota/Makefile
new file mode 100644 (file)
index 0000000..7a4f725
--- /dev/null
@@ -0,0 +1 @@
+include $(TOPDIR)/fs/xfs/quota/Makefile-linux-$(VERSION).$(PATCHLEVEL)
diff --git a/fs/xfs/quota/Makefile-linux-2.6 b/fs/xfs/quota/Makefile-linux-2.6
new file mode 100644 (file)
index 0000000..8b7b676
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2000-2003 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like. Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+#
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+
+EXTRA_CFLAGS += -I $(TOPDIR)/fs/xfs -I $(TOPDIR)/fs/xfs/linux-2.6
+
+ifeq ($(CONFIG_XFS_DEBUG),y)
+       EXTRA_CFLAGS += -g -DDEBUG
+       #EXTRA_CFLAGS += -DQUOTADEBUG
+endif
+ifeq ($(CONFIG_XFS_TRACE),y)
+       EXTRA_CFLAGS += -DXFS_DQUOT_TRACE
+       EXTRA_CFLAGS += -DXFS_VNODE_TRACE
+endif
+
+obj-$(CONFIG_XFS_QUOTA)                += xfs_quota.o
+
+xfs_quota-y                    += xfs_dquot.o \
+                                  xfs_dquot_item.o \
+                                  xfs_trans_dquot.o \
+                                  xfs_qm_syscalls.o \
+                                  xfs_qm_bhv.o \
+                                  xfs_qm.o
+
+xfs_quota-$(CONFIG_PROC_FS)    += xfs_qm_stats.o
index 4ed7b6928cd78c4e6a02f0e4930116174295f4f2..4e1a5ec22fa370b3c6d4056d1e64cc746dd6444c 100644 (file)
@@ -31,6 +31,7 @@
  */
 
 #include "debug.h"
+#include "spin.h"
 
 #include <asm/page.h>
 #include <linux/sched.h>
index d4b9545c2b5cbf963a3b5576d2bdeacffcdf5ae0..f1a904e23adeff9d1c838f958940a0d42e13a14a 100644 (file)
@@ -795,7 +795,6 @@ xfs_statvfs(
        xfs_mount_t     *mp;
        xfs_sb_t        *sbp;
        unsigned long   s;
-       u64 id;
 
        mp = XFS_BHVTOM(bdp);
        sbp = &(mp->m_sb);
@@ -823,9 +822,7 @@ xfs_statvfs(
        statp->f_ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree);
        XFS_SB_UNLOCK(mp, s);
 
-       id = huge_encode_dev(mp->m_dev);
-       statp->f_fsid.val[0] = (u32)id;
-       statp->f_fsid.val[1] = (u32)(id >> 32);
+       xfs_statvfs_fsid(statp, mp);
        statp->f_namelen = MAXNAMELEN - 1;
 
        return 0;
@@ -1505,7 +1502,10 @@ xfs_syncsub(
         * eventually kicked out of the cache.
         */
        if (flags & SYNC_REFCACHE) {
-               xfs_refcache_purge_some(mp);
+               if (flags & SYNC_WAIT)
+                       xfs_refcache_purge_mp(mp);
+               else
+                       xfs_refcache_purge_some(mp);
        }
 
        /*