vserver 2.0 rc7
[linux-2.6.git] / fs / xfs / linux-2.6 / xfs_super.c
index 3842eee..674bf43 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
+ * Copyright (c) 2000-2005 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
@@ -66,7 +66,6 @@
 #include "xfs_buf_item.h"
 #include "xfs_utils.h"
 #include "xfs_version.h"
-#include "xfs_ioctl32.h"
 
 #include <linux/namei.h>
 #include <linux/init.h>
@@ -76,7 +75,6 @@
 STATIC struct quotactl_ops linvfs_qops;
 STATIC struct super_operations linvfs_sops;
 STATIC kmem_zone_t *linvfs_inode_zone;
-STATIC kmem_shaker_t xfs_inode_shaker;
 
 STATIC struct xfs_mount_args *
 xfs_args_allocate(
@@ -91,6 +89,10 @@ xfs_args_allocate(
        /* Copy the already-parsed mount(2) flags we're interested in */
        if (sb->s_flags & MS_NOATIME)
                args->flags |= XFSMNT_NOATIME;
+       if (sb->s_flags & MS_DIRSYNC)
+               args->flags |= XFSMNT_DIRSYNC;
+       if (sb->s_flags & MS_SYNCHRONOUS)
+               args->flags |= XFSMNT_WSYNC;
 
        /* Default to 32 bit inodes on Linux all the time */
        args->flags |= XFSMNT_32BITINODES;
@@ -169,6 +171,7 @@ xfs_revalidate_inode(
        inode->i_nlink  = ip->i_d.di_nlink;
        inode->i_uid    = ip->i_d.di_uid;
        inode->i_gid    = ip->i_d.di_gid;
+       inode->i_xid    = ip->i_d.di_xid;
        if (((1 << vp->v_type) & ((1<<VBLK) | (1<<VCHR))) == 0) {
                inode->i_rdev = 0;
        } else {
@@ -294,18 +297,6 @@ linvfs_destroy_inode(
        kmem_cache_free(linvfs_inode_zone, LINVFS_GET_VP(inode));
 }
 
-STATIC int
-xfs_inode_shake(
-       int             priority,
-       unsigned int    gfp_mask)
-{
-       int             pages;
-
-       pages = kmem_zone_shrink(linvfs_inode_zone);
-       pages += kmem_zone_shrink(xfs_inode_zone);
-       return pages;
-}
-
 STATIC void
 init_once(
        void                    *data,
@@ -893,12 +884,6 @@ init_xfs_fs( void )
        uuid_init();
        vfs_initquota();
 
-       xfs_inode_shaker = kmem_shake_register(xfs_inode_shake);
-       if (!xfs_inode_shaker) {
-               error = -ENOMEM;
-               goto undo_shaker;
-       }
-
        error = register_filesystem(&xfs_fs_type);
        if (error)
                goto undo_register;
@@ -906,9 +891,6 @@ init_xfs_fs( void )
        return 0;
 
 undo_register:
-       kmem_shake_deregister(xfs_inode_shaker);
-
-undo_shaker:
        pagebuf_terminate();
 
 undo_pagebuf:
@@ -924,7 +906,6 @@ exit_xfs_fs( void )
        vfs_exitquota();
        XFS_DM_EXIT(&xfs_fs_type);
        unregister_filesystem(&xfs_fs_type);
-       kmem_shake_deregister(xfs_inode_shaker);
        xfs_cleanup();
        pagebuf_terminate();
        destroy_inodecache();