Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd3417c8 authored by Al Viro's avatar Al Viro
Browse files

kill free_page_put_link()



all callers are better off with kfree_put_link()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 0d0def49
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -282,29 +282,29 @@ static int configfs_getlink(struct dentry *dentry, char * path)
static const char *configfs_get_link(struct dentry *dentry,
				     struct inode *inode, void **cookie)
{
	unsigned long page;
	char *page;
	int error;

	if (!dentry)
		return ERR_PTR(-ECHILD);

	page = get_zeroed_page(GFP_KERNEL);
	page = kzalloc(PAGE_SIZE, GFP_KERNEL);
	if (!page)
		return ERR_PTR(-ENOMEM);

	error = configfs_getlink(dentry, (char *)page);
	error = configfs_getlink(dentry, page);
	if (!error) {
		return *cookie = (void *)page;
		return *cookie = page;
	}

	free_page(page);
	kfree(page);
	return ERR_PTR(error);
}

const struct inode_operations configfs_symlink_inode_operations = {
	.get_link = configfs_get_link,
	.readlink = generic_readlink,
	.put_link = free_page_put_link,
	.put_link = kfree_put_link,
	.setattr = configfs_setattr,
};
+3 −3
Original line number Diff line number Diff line
@@ -1376,7 +1376,7 @@ static const char *fuse_get_link(struct dentry *dentry,
	if (!dentry)
		return ERR_PTR(-ECHILD);

	link = (char *) __get_free_page(GFP_KERNEL);
	link = kmalloc(PAGE_SIZE, GFP_KERNEL);
	if (!link)
		return ERR_PTR(-ENOMEM);

@@ -1388,7 +1388,7 @@ static const char *fuse_get_link(struct dentry *dentry,
	args.out.args[0].value = link;
	ret = fuse_simple_request(fc, &args);
	if (ret < 0) {
		free_page((unsigned long) link);
		kfree(link);
		link = ERR_PTR(ret);
	} else {
		link[ret] = '\0';
@@ -1913,7 +1913,7 @@ static const struct inode_operations fuse_common_inode_operations = {
static const struct inode_operations fuse_symlink_inode_operations = {
	.setattr	= fuse_setattr,
	.get_link	= fuse_get_link,
	.put_link	= free_page_put_link,
	.put_link	= kfree_put_link,
	.readlink	= generic_readlink,
	.getattr	= fuse_getattr,
	.setxattr	= fuse_setxattr,
+6 −6
Original line number Diff line number Diff line
@@ -116,19 +116,19 @@ static const char *kernfs_iop_get_link(struct dentry *dentry,
				       struct inode *inode, void **cookie)
{
	int error = -ENOMEM;
	unsigned long page;
	char *page;

	if (!dentry)
		return ERR_PTR(-ECHILD);
	page = get_zeroed_page(GFP_KERNEL);
	page = kzalloc(PAGE_SIZE, GFP_KERNEL);
	if (!page)
		return ERR_PTR(-ENOMEM);
	error = kernfs_getlink(dentry, (char *)page);
	error = kernfs_getlink(dentry, page);
	if (unlikely(error < 0)) {
		free_page((unsigned long)page);
		kfree(page);
		return ERR_PTR(error);
	}
	return *cookie = (char *)page;
	return *cookie = page;
}

const struct inode_operations kernfs_symlink_iops = {
@@ -138,7 +138,7 @@ const struct inode_operations kernfs_symlink_iops = {
	.listxattr	= kernfs_iop_listxattr,
	.readlink	= generic_readlink,
	.get_link	= kernfs_iop_get_link,
	.put_link	= free_page_put_link,
	.put_link	= kfree_put_link,
	.setattr	= kernfs_iop_setattr,
	.getattr	= kernfs_iop_getattr,
	.permission	= kernfs_iop_permission,
+0 −6
Original line number Diff line number Diff line
@@ -1025,12 +1025,6 @@ void kfree_put_link(struct inode *unused, void *cookie)
}
EXPORT_SYMBOL(kfree_put_link);

void free_page_put_link(struct inode *unused, void *cookie)
{
	free_page((unsigned long) cookie);
}
EXPORT_SYMBOL(free_page_put_link);

/*
 * nop .set_page_dirty method so that people can use .page_mkwrite on
 * anon inodes.
+0 −1
Original line number Diff line number Diff line
@@ -2743,7 +2743,6 @@ extern int __page_symlink(struct inode *inode, const char *symname, int len,
extern int page_symlink(struct inode *inode, const char *symname, int len);
extern const struct inode_operations page_symlink_inode_operations;
extern void kfree_put_link(struct inode *, void *);
extern void free_page_put_link(struct inode *, void *);
extern int generic_readlink(struct dentry *, char __user *, int);
extern void generic_fillattr(struct inode *, struct kstat *);
int vfs_getattr_nosec(struct path *path, struct kstat *stat);