1/*
2 *   Copyright (C) Christoph Hellwig, 2001-2002
3 *
4 *   This program is free software;  you can redistribute it and/or modify
5 *   it under the terms of the GNU General Public License as published by
6 *   the Free Software Foundation; either version 2 of the License, or
7 *   (at your option) any later version.
8 *
9 *   This program is distributed in the hope that it will be useful,
10 *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
11 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
12 *   the GNU General Public License for more details.
13 *
14 *   You should have received a copy of the GNU General Public License
15 *   along with this program;  if not, write to the Free Software
16 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
19#include <linux/fs.h>
20#include <linux/namei.h>
21#include "jfs_incore.h"
22#include "jfs_inode.h"
23#include "jfs_xattr.h"
24
25static void *jfs_follow_link(struct dentry *dentry, struct nameidata *nd)
26{
27	char *s = JFS_IP(dentry->d_inode)->i_inline;
28	nd_set_link(nd, s);
29	return NULL;
30}
31
32const struct inode_operations jfs_fast_symlink_inode_operations = {
33	.readlink	= generic_readlink,
34	.follow_link	= jfs_follow_link,
35	.setattr	= jfs_setattr,
36	.setxattr	= jfs_setxattr,
37	.getxattr	= jfs_getxattr,
38	.listxattr	= jfs_listxattr,
39	.removexattr	= jfs_removexattr,
40};
41
42const struct inode_operations jfs_symlink_inode_operations = {
43	.readlink	= generic_readlink,
44	.follow_link	= page_follow_link_light,
45	.put_link	= page_put_link,
46	.setattr	= jfs_setattr,
47	.setxattr	= jfs_setxattr,
48	.getxattr	= jfs_getxattr,
49	.listxattr	= jfs_listxattr,
50	.removexattr	= jfs_removexattr,
51};
52