aboutsummaryrefslogtreecommitdiff
path: root/fs/autofs4/symlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/autofs4/symlink.c')
-rw-r--r--fs/autofs4/symlink.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/autofs4/symlink.c b/fs/autofs4/symlink.c
index c265a66edf0..1e8ea192be2 100644
--- a/fs/autofs4/symlink.c
+++ b/fs/autofs4/symlink.c
@@ -12,14 +12,17 @@
#include "autofs_i.h"
-static int autofs4_follow_link(struct dentry *dentry, struct nameidata *nd)
+static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd)
{
+ struct autofs_sb_info *sbi = autofs4_sbi(dentry->d_sb);
struct autofs_info *ino = autofs4_dentry_ino(dentry);
- nd_set_link(nd, (char *)ino->u.symlink);
- return 0;
+ if (ino && !autofs4_oz_mode(sbi))
+ ino->last_used = jiffies;
+ nd_set_link(nd, dentry->d_inode->i_private);
+ return NULL;
}
-struct inode_operations autofs4_symlink_inode_operations = {
+const struct inode_operations autofs4_symlink_inode_operations = {
.readlink = generic_readlink,
.follow_link = autofs4_follow_link
};