]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/orangefs/symlink.c
Merge remote-tracking branch 'orangefs/for-next'
[karo-tx-linux.git] / fs / orangefs / symlink.c
index 2b8541a7fc43d0bfdb9241594422046d699f11fc..943884b4d3ba4106d12f291f75be18a24a58d995 100644 (file)
@@ -8,22 +8,26 @@
 #include "orangefs-kernel.h"
 #include "orangefs-bufmap.h"
 
-static const char *orangefs_follow_link(struct dentry *dentry, void **cookie)
+static const char *orangefs_get_link(struct dentry *dentry, struct inode *inode,
+                                    struct delayed_call *done)
 {
-       char *target =  ORANGEFS_I(dentry->d_inode)->link_target;
+       char *target;
+
+       if (!dentry)
+               return ERR_PTR(-ECHILD);
+
+       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,
+       .get_link = orangefs_get_link,
        .setattr = orangefs_setattr,
        .getattr = orangefs_getattr,
        .listxattr = orangefs_listxattr,