Index: trunk/server/common/patches/openafs-linux-3.2-nlink.patch
===================================================================
--- trunk/server/common/patches/openafs-linux-3.2-nlink.patch	(revision 2143)
+++ trunk/server/common/patches/openafs-linux-3.2-nlink.patch	(revision 2143)
@@ -0,0 +1,28 @@
+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/fedora/specs/openafs.spec.patch
===================================================================
--- trunk/server/fedora/specs/openafs.spec.patch	(revision 2142)
+++ trunk/server/fedora/specs/openafs.spec.patch	(revision 2143)
@@ -1,4 +1,4 @@
---- rpmbuild/SPECS/openafs.spec
-+++ rpmbuild/SPECS/openafs.spec.~3~	2011-11-20 20:13:52.211673609 -0500
+--- openafs.spec	2012-02-13 15:41:02.757592190 -0500
++++ openafs.spec.~3~	2012-02-13 15:48:25.366294629 -0500
 @@ -4,7 +4,7 @@
  %define pkgvers 1.6.0
@@ -10,5 +10,5 @@
  %{!?fedorakmod: %define fedorakmod 1}
  %{!?build_dkmspkg: %define build_dkmspkg 1}
-@@ -237,6 +237,14 @@
+@@ -237,6 +237,15 @@
  
  ExclusiveArch: %{ix86} x86_64 ia64 s390 s390x sparc64 ppc ppc64
@@ -21,9 +21,10 @@
 +Patch1005: openafs-linux-3.1-fsync.patch
 +Patch1006: openafs-linux-3.1-zalloc.patch
++Patch1007: openafs-linux-3.2-nlink.patch
 +
  #    http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
  Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
  Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar.bz2
-@@ -316,6 +324,7 @@
+@@ -316,6 +325,7 @@
  %if %{build_userspace}
  
@@ -33,5 +34,5 @@
  
  %if %{fedorakmod}
-@@ -376,6 +385,7 @@
+@@ -376,6 +386,7 @@
  
  %if %{build_authlibs}
@@ -41,5 +42,5 @@
  Group: Networking/Filesystems
  
-@@ -392,6 +402,7 @@
+@@ -392,6 +403,7 @@
  %endif
  
@@ -49,5 +50,5 @@
  Requires: openafs-authlibs = %{version}-%{release}
  %endif
-@@ -410,6 +421,7 @@
+@@ -410,6 +422,7 @@
  libraries.
  
@@ -57,5 +58,5 @@
  Group: Development/Filesystems
  Requires: openafs = %{version}-%{release}
-@@ -439,6 +451,7 @@
+@@ -439,6 +452,7 @@
  administrators.
  
@@ -65,5 +66,5 @@
  Group: Networking/Filesystems
  Provides: openafs-kernel = %{version}
-@@ -488,6 +501,7 @@
+@@ -488,6 +502,7 @@
  
  %if %{krb5support}
@@ -73,5 +74,5 @@
  Requires: openafs = %{version}
  Group: Networking/Filesystems
-@@ -514,7 +528,7 @@
+@@ -514,7 +529,7 @@
  %if %{build_modules}
  
@@ -82,5 +83,5 @@
  %else
  
-@@ -671,6 +685,15 @@
+@@ -671,6 +686,16 @@
  #%setup -q -n %{srcdir}
  %setup -q -b 1 -n %{srcdir}
@@ -94,9 +95,10 @@
 +%patch1005 -p1 -b .fsync
 +%patch1006 -p1 -b .zalloc
++%patch1007 -p1 -b .nlink
 +
  ##############################################################################
  #
  # building
-@@ -1212,6 +1235,13 @@
+@@ -1212,6 +1237,13 @@
  rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
  rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so.*
