Index: trunk/server/common/patches/openafs-linux-3.1-fsync.patch
===================================================================
--- trunk/server/common/patches/openafs-linux-3.1-fsync.patch	(revision 2186)
+++ 	(revision )
@@ -1,90 +1,0 @@
-From: Marc Dionne <marc.c.dionne@gmail.com>
-Date: Fri, 2 Sep 2011 21:56:58 +0000 (-0400)
-Subject: Linux: 3.1: adapt to fsync changes
-X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=81f28004415ae07f2e3a1320da632cbd52c96b25;hp=ef492dc1e1a1809a910fbf07140b26c4924957c5
-
-Linux: 3.1: adapt to fsync changes
-
-The fsync file operation gets new arguments to specify a range.
-Add a configure test to check for the API change.
-
-The inode lock is also pushed down into the operation, so we need
-to take it ourselves to keep the original behaviour.
-
-Reviewed-on: http://gerrit.openafs.org/5332
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
-Reviewed-by: Derrick Brashear <shadow@dementix.org>
-(cherry picked from commit cbaefa266d433af3b9a082a360e23a42f161d80f)
-
-Change-Id: Idb6770204b014c62a8611548509240f8b5f950bc
----
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 3ff4551..35f2200 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -920,6 +920,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- 	  	 LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
- 	  	 LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
- 	  	 LINUX_FOP_F_FSYNC_TAKES_DENTRY
-+		 LINUX_FOP_F_FSYNC_TAKES_RANGE
- 	  	 LINUX_AOP_WRITEBACK_CONTROL
- 		 LINUX_FS_STRUCT_FOP_HAS_SPLICE
- 		 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index 696146b..019b568 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -425,6 +425,8 @@ afs_linux_release(struct inode *ip, struct file *fp)
- static int
- #if defined(FOP_FSYNC_TAKES_DENTRY)
- afs_linux_fsync(struct file *fp, struct dentry *dp, int datasync)
-+#elif defined(FOP_FSYNC_TAKES_RANGE)
-+afs_linux_fsync(struct file *fp, loff_t start, loff_t end, int datasync)
- #else
- afs_linux_fsync(struct file *fp, int datasync)
- #endif
-@@ -433,9 +435,15 @@ afs_linux_fsync(struct file *fp, int datasync)
-     struct inode *ip = FILE_INODE(fp);
-     cred_t *credp = crref();
- 
-+#if defined(FOP_FSYNC_TAKES_RANGE)
-+    mutex_lock(&ip->i_mutex);
-+#endif
-     AFS_GLOCK();
-     code = afs_fsync(VTOAFS(ip), credp);
-     AFS_GUNLOCK();
-+#if defined(FOP_FSYNC_TAKES_RANGE)
-+    mutex_unlock(&ip->i_mutex);
-+#endif
-     crfree(credp);
-     return afs_convert_code(code);
- 
-diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4
-index 2292f81..35082b3 100644
---- a/src/cf/linux-test4.m4
-+++ b/src/cf/linux-test4.m4
-@@ -414,6 +414,22 @@ struct dentry _d;
- ])
- 
- 
-+int (*fsync) (struct file *, loff_t start, loff_t end, int datasync);
-+
-+AC_DEFUN([LINUX_FOP_F_FSYNC_TAKES_RANGE], [
-+  AC_CHECK_LINUX_BUILD([whether file_operations.fsync takes a range],
-+		       [ac_cv_linux_func_f_fsync_takes_range],
-+		       [#include <linux/fs.h>],
-+[struct inode _inode;
-+struct file _file;
-+loff_t start, end;
-+(void)_inode.i_fop->fsync(&_file, start, end, 0);],
-+		       [FOP_FSYNC_TAKES_RANGE],
-+		       [define if your fops.fsync takes range arguments],
-+		       [])
-+])
-+
-+
- AC_DEFUN([LINUX_HAVE_KMEM_CACHE_T], [
-   AC_CHECK_LINUX_BUILD([whether kmem_cache_t exists],
- 		       [ac_cv_linux_have_kmem_cache_t],
Index: trunk/server/common/patches/openafs-linux-3.1-rcu.patch
===================================================================
--- trunk/server/common/patches/openafs-linux-3.1-rcu.patch	(revision 2186)
+++ 	(revision )
@@ -1,45 +1,0 @@
-From f129142dde2a2637b2e638ca0cca372a45188923 Mon Sep 17 00:00:00 2001
-From: Marc Dionne <marc.c.dionne@gmail.com>
-Date: Sat, 29 Oct 2011 19:23:07 -0400
-Subject: [PATCH] Linux: 3.1: update RCU path walking detection in permission i_op
-
-The permission() inode operation changed again with kernel 3.1,
-back to the form it had before 2.6.38.  This compiles fine,
-but is missing the new way of detecting when we get called in
-RCU path walking mode, resulting in system hangs.
-
-Reviewed-on: http://gerrit.openafs.org/5740
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Derrick Brashear <shadow@dementix.org>
-(cherry picked from commit 4952df3f0359531e4a660c99c94c51eb0b169f59)
-
-Change-Id: Ibd497309e6699fb585cf70e618373e800b73cbb8
-Reviewed-on: http://gerrit.openafs.org/6088
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Derrick Brashear <shadow@dementix.org>
----
- src/afs/LINUX/osi_vnodeops.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c
-index e9215db..696146b 100644
---- a/src/afs/LINUX/osi_vnodeops.c
-+++ b/src/afs/LINUX/osi_vnodeops.c
-@@ -2245,10 +2245,13 @@ afs_linux_permission(struct inode *ip, int mode)
-     cred_t *credp;
-     int tmp = 0;
- 
-+    /* Check for RCU path walking */
- #if defined(IOP_PERMISSION_TAKES_FLAGS)
--    /* We don't support RCU path walking */
-     if (flags & IPERM_FLAG_RCU)
-        return -ECHILD;
-+#elif defined(MAY_NOT_BLOCK)
-+    if (mode & MAY_NOT_BLOCK)
-+       return -ECHILD;
- #endif
- 
-     credp = crref();
--- 
-1.7.2.5
-
Index: trunk/server/common/patches/openafs-linux-3.1-zalloc.patch
===================================================================
--- trunk/server/common/patches/openafs-linux-3.1-zalloc.patch	(revision 2186)
+++ 	(revision )
@@ -1,32 +1,0 @@
-From e7669883d5124f85bad6840a4e8280e4de32f7a5 Mon Sep 17 00:00:00 2001
-From: Marc Dionne <marc.c.dionne@gmail.com>
-Date: Mon, 21 Nov 2011 21:27:06 -0500
-Subject: [PATCH] Linux: make sure backing_dev_info is zeroed
-
-The afs backing_dev_info structure is allocated dynamically
-without zeroing out the contents.  In particular there's no
-guarantee that congested_fn is NULL, causing spurious oopses
-when bdi_congested in the kernel tries to call it.
-
-(adapted from commit 8e97cf6f215d5575c63d86eaec59031399f4beda)
-
-Change-Id: I83755b6bb5ec2fada7e077c00d3d8edf8af1cae4
----
- src/afs/LINUX/osi_vfsops.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c
-index d32720f..0d41bc7 100644
---- a/src/afs/LINUX/osi_vfsops.c
-+++ b/src/afs/LINUX/osi_vfsops.c
-@@ -114,6 +114,7 @@ afs_fill_super(struct super_block *sb, void *data, int silent)
- 
-     /* used for inodes backing_dev_info field, also */
-     afs_backing_dev_info = osi_Alloc(sizeof(struct backing_dev_info));
-+    memset(afs_backing_dev_info, 0, sizeof(struct backing_dev_info));
- #if defined(HAVE_LINUX_BDI_INIT)
-     bdi_init(afs_backing_dev_info);
- #endif
--- 
-1.7.2.5
-
Index: trunk/server/common/patches/openafs-linux-3.2-nlink.patch
===================================================================
--- trunk/server/common/patches/openafs-linux-3.2-nlink.patch	(revision 2186)
+++ 	(revision )
@@ -1,28 +1,0 @@
-As of v3.2-rc1~84^2~1, struct inode.i_nlink is now const to prevent
-direct modification.
-
-Original patch was:
-
-From c4442772286c0a1fdb99500d65e7d6f295388feb Mon Sep 17 00:00:00 2001
-From: Anders Kaseorg <andersk@mit.edu>
-Date: Sun, 20 Nov 2011 19:00:00 -0500
-Subject: [PATCH] Linux: 3.2: Use set_nlink to update i_nlink
-Change-Id: I685aa6e8638e8fe864f1a6a7e428dfb6839ebcea
-
-Since handling m4 changes is annoying with spec files, we assume
-that set_nlink is available.  This patch will break on old versions
-of Linux, specifically prior to v3.1-8781-gd211858.
-
-diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c
-index 596d064..d32720f 100644
---- a/src/afs/LINUX/osi_vfsops.c
-+++ b/src/afs/LINUX/osi_vfsops.c
-@@ -439,7 +439,7 @@ void
- vattr2inode(struct inode *ip, struct vattr *vp)
- {
-     ip->i_ino = vp->va_nodeid;
--    ip->i_nlink = vp->va_nlink;
-+    set_nlink(ip, vp->va_nlink);
-     ip->i_blocks = vp->va_blocks;
- #ifdef STRUCT_INODE_HAS_I_BLKBITS
-     ip->i_blkbits = AFS_BLKBITS;
Index: trunk/server/common/patches/openafs-systemd-remote-fs.patch
===================================================================
--- trunk/server/common/patches/openafs-systemd-remote-fs.patch	(revision 2200)
+++ trunk/server/common/patches/openafs-systemd-remote-fs.patch	(revision 2200)
@@ -0,0 +1,25 @@
+commit 1ad0974334feb0a46c8f806654a0592e91011da5
+Author: Edward Z. Yang <ezyang@mit.edu>
+Date:   Sun Nov 20 15:48:33 2011 -0500
+
+    Add OpenAFS to the dependencies of remote-fs.
+    
+    Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
+    
+    Reviewed-on: http://gerrit.openafs.org/6093
+    Tested-by: BuildBot <buildbot@rampaginggeek.com>
+    Reviewed-by: Derrick Brashear <shadow@dementix.org>
+    (cherry picked from commit 3328770612b7205abb92df5b5f4737eb3349c910)
+    
+    Change-Id: I16b7b0ac6e68bf91c48652faab339871f18549a5
+
+diff --git a/src/packaging/RedHat/openafs-client.service b/src/packaging/RedHat/openafs-client.service
+index bc95057..936762e 100644
+--- a/src/packaging/RedHat/openafs-client.service
++++ b/src/packaging/RedHat/openafs-client.service
+@@ -15,4 +15,4 @@ ExecStop=/sbin/rmmod openafs
+ KillMode=none
+ 
+ [Install]
+-WantedBy=multi-user.target
++WantedBy=multi-user.target remote-fs.target
Index: trunk/server/common/patches/openafs-systemd.patch
===================================================================
--- trunk/server/common/patches/openafs-systemd.patch	(revision 2186)
+++ 	(revision )
@@ -1,51 +1,0 @@
-diff --git a/src/packaging/RedHat/openafs-client.modules b/src/packaging/RedHat/openafs-client.modules
-new file mode 100644
-index 0000000..055d117
---- /dev/null
-+++ b/src/packaging/RedHat/openafs-client.modules
-@@ -0,0 +1,4 @@
-+#!/bin/sh
-+
-+# Load the OpenAFS kernel module at boot
-+exec /sbin/modprobe openafs
-diff --git a/src/packaging/RedHat/openafs-client.service b/src/packaging/RedHat/openafs-client.service
-new file mode 100644
-index 0000000..bc95057
---- /dev/null
-+++ b/src/packaging/RedHat/openafs-client.service
-@@ -0,0 +1,18 @@
-+[Unit]
-+Description=OpenAFS Client Service
-+After=syslog.target network.target
-+
-+[Service]
-+Type=forking
-+EnvironmentFile=/etc/sysconfig/openafs
-+ExecStartPre=/bin/sed -n 'w/usr/vice/etc/CellServDB' /usr/vice/etc/CellServDB.local /usr/vice/etc/CellServDB.dist
-+ExecStartPre=/bin/chmod 0644 /usr/vice/etc/CellServDB
-+ExecStartPre=/sbin/modprobe openafs
-+ExecStart=/usr/vice/etc/afsd $AFSD_ARGS
-+ExecStop=/bin/umount /afs
-+ExecStop=/usr/vice/etc/afsd -shutdown
-+ExecStop=/sbin/rmmod openafs
-+KillMode=none
-+
-+[Install]
-+WantedBy=multi-user.target remote-fs.target
-diff --git a/src/packaging/RedHat/openafs-server.service b/src/packaging/RedHat/openafs-server.service
-new file mode 100644
-index 0000000..2d34bb0
---- /dev/null
-+++ b/src/packaging/RedHat/openafs-server.service
-@@ -0,0 +1,11 @@
-+[Unit]
-+Description=OpenAFS Server Service
-+After=syslog.target network.target
-+
-+[Service]
-+EnvironmentFile=-/etc/sysconfig/openafs
-+ExecStart=/usr/afs/bin/bosserver $BOSSERVER_ARGS
-+ExecStop=/usr/bin/bos shutdown localhost -wait -localauth
-+
-+[Install]
-+WantedBy=multi-user.target
