summaryrefslogtreecommitdiffstats
path: root/fs/orangefs/symlink.c
blob: 2b8541a7fc43d0bfdb9241594422046d699f11fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * (C) 2001 Clemson University and The University of Chicago
 *
 * See COPYING in top-level directory.
 */

#include "protocol.h"
#include "orangefs-kernel.h"
#include "orangefs-bufmap.h"

static const char *orangefs_follow_link(struct dentry *dentry, void **cookie)
{
	char *target =  ORANGEFS_I(dentry->d_inode)->link_target;

	gossip_debug(GOSSIP_INODE_DEBUG,
		     "%s: called on %s (target is %p)\n",
		     __func__, (char *)dentry->d_name.name, target);

	*cookie = target;

	return target;
}

struct inode_operations orangefs_symlink_inode_operations = {
	.readlink = generic_readlink,
	.follow_link = orangefs_follow_link,
	.setattr = orangefs_setattr,
	.getattr = orangefs_getattr,
	.listxattr = orangefs_listxattr,
	.setxattr = generic_setxattr,
	.permission = orangefs_permission,
};