Commit 78a3fa4f authored by Miklos Szeredi's avatar Miklos Szeredi

ovl: use generic_readlink

All filesystems that are backers for overlayfs would also use
generic_readlink().  Move this logic to the overlay itself, which is a nice
cleanup.
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent cb348edb
...@@ -176,25 +176,6 @@ static const char *ovl_get_link(struct dentry *dentry, ...@@ -176,25 +176,6 @@ static const char *ovl_get_link(struct dentry *dentry,
return p; return p;
} }
static int ovl_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
{
struct path realpath;
struct inode *realinode;
const struct cred *old_cred;
int err;
ovl_path_real(dentry, &realpath);
realinode = realpath.dentry->d_inode;
if (!realinode->i_op->readlink)
return -EINVAL;
old_cred = ovl_override_creds(dentry->d_sb);
err = realinode->i_op->readlink(realpath.dentry, buf, bufsiz);
revert_creds(old_cred);
return err;
}
bool ovl_is_private_xattr(const char *name) bool ovl_is_private_xattr(const char *name)
{ {
return strncmp(name, OVL_XATTR_PREFIX, return strncmp(name, OVL_XATTR_PREFIX,
...@@ -381,7 +362,7 @@ static const struct inode_operations ovl_file_inode_operations = { ...@@ -381,7 +362,7 @@ static const struct inode_operations ovl_file_inode_operations = {
static const struct inode_operations ovl_symlink_inode_operations = { static const struct inode_operations ovl_symlink_inode_operations = {
.setattr = ovl_setattr, .setattr = ovl_setattr,
.get_link = ovl_get_link, .get_link = ovl_get_link,
.readlink = ovl_readlink, .readlink = generic_readlink,
.getattr = ovl_getattr, .getattr = ovl_getattr,
.setxattr = generic_setxattr, .setxattr = generic_setxattr,
.getxattr = generic_getxattr, .getxattr = generic_getxattr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment