aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/symlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/symlink.c')
-rw-r--r--fs/nfs/symlink.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c
index 18dc95b0b646..600bbe630abd 100644
--- a/fs/nfs/symlink.c
+++ b/fs/nfs/symlink.c
@@ -52,7 +52,7 @@ static void *nfs_follow_link(struct dentry *dentry, struct nameidata *nd)
52{ 52{
53 struct inode *inode = dentry->d_inode; 53 struct inode *inode = dentry->d_inode;
54 struct page *page; 54 struct page *page;
55 void *err = ERR_PTR(nfs_revalidate_inode(NFS_SERVER(inode), inode)); 55 void *err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping));
56 if (err) 56 if (err)
57 goto read_failed; 57 goto read_failed;
58 page = read_cache_page(&inode->i_data, 0, 58 page = read_cache_page(&inode->i_data, 0,
@@ -75,22 +75,13 @@ read_failed:
75 return NULL; 75 return NULL;
76} 76}
77 77
78static void nfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
79{
80 if (cookie) {
81 struct page *page = cookie;
82 kunmap(page);
83 page_cache_release(page);
84 }
85}
86
87/* 78/*
88 * symlinks can't do much... 79 * symlinks can't do much...
89 */ 80 */
90struct inode_operations nfs_symlink_inode_operations = { 81struct inode_operations nfs_symlink_inode_operations = {
91 .readlink = generic_readlink, 82 .readlink = generic_readlink,
92 .follow_link = nfs_follow_link, 83 .follow_link = nfs_follow_link,
93 .put_link = nfs_put_link, 84 .put_link = page_put_link,
94 .getattr = nfs_getattr, 85 .getattr = nfs_getattr,
95 .setattr = nfs_setattr, 86 .setattr = nfs_setattr,
96}; 87};