Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * linux/fs/sysv/symlink.c |
| 3 | * |
| 4 | * Handling of System V filesystem fast symlinks extensions. |
| 5 | * Aug 2001, Christoph Hellwig (hch@infradead.org) |
| 6 | */ |
| 7 | |
| 8 | #include "sysv.h" |
| 9 | #include <linux/namei.h> |
| 10 | |
Al Viro | 008b150 | 2005-08-20 00:17:39 +0100 | [diff] [blame] | 11 | static void *sysv_follow_link(struct dentry *dentry, struct nameidata *nd) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 12 | { |
David Howells | 2b0143b | 2015-03-17 22:25:59 +0000 | [diff] [blame] | 13 | nd_set_link(nd, (char *)SYSV_I(d_inode(dentry))->i_data); |
Al Viro | 008b150 | 2005-08-20 00:17:39 +0100 | [diff] [blame] | 14 | return NULL; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 15 | } |
| 16 | |
Arjan van de Ven | c5ef1c4 | 2007-02-12 00:55:40 -0800 | [diff] [blame] | 17 | const struct inode_operations sysv_fast_symlink_inode_operations = { |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 18 | .readlink = generic_readlink, |
| 19 | .follow_link = sysv_follow_link, |
| 20 | }; |