aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r--fs/nfs/inode.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 5f59a2df21aa..86eefbafb7b4 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -396,7 +396,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
396 dprintk("NFS: nfs_fhget(%s/%Ld ct=%d)\n", 396 dprintk("NFS: nfs_fhget(%s/%Ld ct=%d)\n",
397 inode->i_sb->s_id, 397 inode->i_sb->s_id,
398 (long long)NFS_FILEID(inode), 398 (long long)NFS_FILEID(inode),
399 atomic_read(&inode->i_count)); 399 inode->i_count);
400 400
401out: 401out:
402 return inode; 402 return inode;
@@ -1153,7 +1153,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
1153 1153
1154 dfprintk(VFS, "NFS: %s(%s/%ld ct=%d info=0x%x)\n", 1154 dfprintk(VFS, "NFS: %s(%s/%ld ct=%d info=0x%x)\n",
1155 __func__, inode->i_sb->s_id, inode->i_ino, 1155 __func__, inode->i_sb->s_id, inode->i_ino,
1156 atomic_read(&inode->i_count), fattr->valid); 1156 inode->i_count, fattr->valid);
1157 1157
1158 if ((fattr->valid & NFS_ATTR_FATTR_FILEID) && nfsi->fileid != fattr->fileid) 1158 if ((fattr->valid & NFS_ATTR_FATTR_FILEID) && nfsi->fileid != fattr->fileid)
1159 goto out_fileid; 1159 goto out_fileid;
@@ -1395,11 +1395,18 @@ struct inode *nfs_alloc_inode(struct super_block *sb)
1395 return &nfsi->vfs_inode; 1395 return &nfsi->vfs_inode;
1396} 1396}
1397 1397
1398void nfs_destroy_inode(struct inode *inode) 1398static void nfs_i_callback(struct rcu_head *head)
1399{ 1399{
1400 struct inode *inode = container_of(head, struct inode, i_rcu);
1401 INIT_LIST_HEAD(&inode->i_dentry);
1400 kmem_cache_free(nfs_inode_cachep, NFS_I(inode)); 1402 kmem_cache_free(nfs_inode_cachep, NFS_I(inode));
1401} 1403}
1402 1404
1405void nfs_destroy_inode(struct inode *inode)
1406{
1407 call_rcu(&inode->i_rcu, nfs_i_callback);
1408}
1409
1403static inline void nfs4_init_once(struct nfs_inode *nfsi) 1410static inline void nfs4_init_once(struct nfs_inode *nfsi)
1404{ 1411{
1405#ifdef CONFIG_NFS_V4 1412#ifdef CONFIG_NFS_V4