diff options
Diffstat (limited to 'fs/nfs/symlink.c')
-rw-r--r-- | fs/nfs/symlink.c | 13 |
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 | ||
78 | static 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 | */ |
90 | struct inode_operations nfs_symlink_inode_operations = { | 81 | struct 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 | }; |