mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 08:20:52 +07:00
933287da75
Thus d_revalidate is not obliged to check on as much, which will eventually lead the way to hammering the filesystem servers much less. Signed-off-by: Martin Brandenburg <martin@omnibond.com> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
33 lines
800 B
C
33 lines
800 B
C
/*
|
|
* (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,
|
|
};
|