-static int ll_readlink(struct dentry *dentry, char *buffer, int buflen)
-{
- struct inode *inode = dentry->d_inode;
- struct ptlrpc_request *request;
- char *symname;
- int rc;
- ENTRY;
-
- CDEBUG(D_VFSTRACE, "VFS Op\n");
- /* on symlinks lli_open_sem protects lli_symlink_name allocation/data */
- ll_inode_size_lock(inode, 0);
- rc = ll_readlink_internal(inode, &request, &symname);
- if (rc)
- GOTO(out, rc);
-
- rc = vfs_readlink(dentry, buffer, buflen, symname);
- out:
- ptlrpc_req_finished(request);
- ll_inode_size_unlock(inode, 0);
- RETURN(rc);
-}
-
-#ifdef HAVE_COOKIE_FOLLOW_LINK
-# define LL_FOLLOW_LINK_RETURN_TYPE void *
+#ifdef HAVE_SYMLINK_OPS_USE_NAMEIDATA
+static void ll_put_link(struct dentry *dentry,
+ struct nameidata *nd, void *cookie)