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 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;