diff options
Diffstat (limited to 'fs/autofs4/symlink.c')
| -rw-r--r-- | fs/autofs4/symlink.c | 11 |
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 }; |
