Also drop the now unused readlink_copy export. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- fs/namei.c | 1 - fs/xfs/xfs_ioctl.c | 19 ++----------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index c83145a..482c6a9 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -4420,7 +4420,6 @@ int readlink_copy(char __user *buffer, int buflen, const char *link) out: return len; } -EXPORT_SYMBOL(readlink_copy); /* * A helper for ->readlink(). This should be used *ONLY* for symlinks that diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index 5f4a396..597609e 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -276,7 +276,6 @@ xfs_readlink_by_handle( { struct dentry *dentry; __u32 olen; - void *link; int error; if (!capable(CAP_SYS_ADMIN)) @@ -287,7 +286,7 @@ xfs_readlink_by_handle( return PTR_ERR(dentry); /* Restrict this handle operation to symlinks only. */ - if (!d_is_symlink(dentry)) { + if (!dentry->d_inode->i_op->readlink) { error = -EINVAL; goto out_dput; } @@ -297,21 +296,7 @@ xfs_readlink_by_handle( goto out_dput; } - link = kmalloc(MAXPATHLEN+1, GFP_KERNEL); - if (!link) { - error = -ENOMEM; - goto out_dput; - } - - error = xfs_readlink(XFS_I(dentry->d_inode), link); - if (error) - goto out_kfree; - error = readlink_copy(hreq->ohandle, olen, link); - if (error) - goto out_kfree; - - out_kfree: - kfree(link); + error = dentry->d_inode->i_op->readlink(dentry, hreq->ohandle, olen); out_dput: dput(dentry); return error; -- 1.9.1 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs