diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-23 11:11:40 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-25 21:26:11 -0400 |
commit | 7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f (patch) | |
tree | 88787e77ba8a253d0a26aeda4bd5e58532d592e0 /fs/nfs | |
parent | 646ec4615cd05972581c9c5342ed7a1e77df17bb (diff) | |
download | kernel_samsung_smdk4412-7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f.zip kernel_samsung_smdk4412-7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f.tar.gz kernel_samsung_smdk4412-7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f.tar.bz2 |
new helper: ihold()
Clones an existing reference to inode; caller must already hold one.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/dir.c | 2 | ||||
-rw-r--r-- | fs/nfs/getroot.c | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index e257172..0fac7fe 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1580,7 +1580,7 @@ nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) d_drop(dentry); error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name); if (error == 0) { - atomic_inc(&inode->i_count); + ihold(inode); d_add(dentry, inode); } return error; diff --git a/fs/nfs/getroot.c b/fs/nfs/getroot.c index a70e446..ac7b814 100644 --- a/fs/nfs/getroot.c +++ b/fs/nfs/getroot.c @@ -54,8 +54,7 @@ static int nfs_superblock_set_dummy_root(struct super_block *sb, struct inode *i iput(inode); return -ENOMEM; } - /* Circumvent igrab(): we know the inode is not being freed */ - atomic_inc(&inode->i_count); + ihold(inode); /* * Ensure that this dentry is invisible to d_find_alias(). * Otherwise, it may be spliced into the tree by |