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

Commit 87dc800b authored by Al Viro's avatar Al Viro
Browse files

new helper: kfree_put_link()



duplicated to hell and back...

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 12f38872
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -860,7 +860,7 @@ const struct inode_operations cifs_file_inode_ops = {
const struct inode_operations cifs_symlink_inode_ops = {
const struct inode_operations cifs_symlink_inode_ops = {
	.readlink = generic_readlink,
	.readlink = generic_readlink,
	.follow_link = cifs_follow_link,
	.follow_link = cifs_follow_link,
	.put_link = cifs_put_link,
	.put_link = kfree_put_link,
	.permission = cifs_permission,
	.permission = cifs_permission,
	/* BB add the following two eventually */
	/* BB add the following two eventually */
	/* revalidate: cifs_revalidate,
	/* revalidate: cifs_revalidate,
+0 −2
Original line number Original line Diff line number Diff line
@@ -115,8 +115,6 @@ extern struct vfsmount *cifs_dfs_d_automount(struct path *path);


/* Functions related to symlinks */
/* Functions related to symlinks */
extern void *cifs_follow_link(struct dentry *direntry, struct nameidata *nd);
extern void *cifs_follow_link(struct dentry *direntry, struct nameidata *nd);
extern void cifs_put_link(struct dentry *direntry,
			  struct nameidata *nd, void *);
extern int cifs_readlink(struct dentry *direntry, char __user *buffer,
extern int cifs_readlink(struct dentry *direntry, char __user *buffer,
			 int buflen);
			 int buflen);
extern int cifs_symlink(struct inode *inode, struct dentry *direntry,
extern int cifs_symlink(struct inode *inode, struct dentry *direntry,
+0 −7
Original line number Original line Diff line number Diff line
@@ -621,10 +621,3 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
	free_xid(xid);
	free_xid(xid);
	return rc;
	return rc;
}
}

void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
{
	char *p = nd_get_link(nd);
	if (!IS_ERR(p))
		kfree(p);
}
+1 −11
Original line number Original line Diff line number Diff line
@@ -703,16 +703,6 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)
	return NULL;
	return NULL;
}
}


static void
ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr)
{
	char *buf = nd_get_link(nd);
	if (!IS_ERR(buf)) {
		/* Free the char* */
		kfree(buf);
	}
}

/**
/**
 * upper_size_to_lower_size
 * upper_size_to_lower_size
 * @crypt_stat: Crypt_stat associated with file
 * @crypt_stat: Crypt_stat associated with file
@@ -1121,7 +1111,7 @@ static int ecryptfs_removexattr(struct dentry *dentry, const char *name)
const struct inode_operations ecryptfs_symlink_iops = {
const struct inode_operations ecryptfs_symlink_iops = {
	.readlink = generic_readlink,
	.readlink = generic_readlink,
	.follow_link = ecryptfs_follow_link,
	.follow_link = ecryptfs_follow_link,
	.put_link = ecryptfs_put_link,
	.put_link = kfree_put_link,
	.permission = ecryptfs_permission,
	.permission = ecryptfs_permission,
	.setattr = ecryptfs_setattr,
	.setattr = ecryptfs_setattr,
	.getattr = ecryptfs_getattr_link,
	.getattr = ecryptfs_getattr_link,
+1 −8
Original line number Original line Diff line number Diff line
@@ -1506,13 +1506,6 @@ static void *gfs2_follow_link(struct dentry *dentry, struct nameidata *nd)
	return NULL;
	return NULL;
}
}


static void gfs2_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
{
	char *s = nd_get_link(nd);
	if (!IS_ERR(s))
		kfree(s);
}

/**
/**
 * gfs2_permission -
 * gfs2_permission -
 * @inode: The inode
 * @inode: The inode
@@ -1864,7 +1857,7 @@ const struct inode_operations gfs2_dir_iops = {
const struct inode_operations gfs2_symlink_iops = {
const struct inode_operations gfs2_symlink_iops = {
	.readlink = generic_readlink,
	.readlink = generic_readlink,
	.follow_link = gfs2_follow_link,
	.follow_link = gfs2_follow_link,
	.put_link = gfs2_put_link,
	.put_link = kfree_put_link,
	.permission = gfs2_permission,
	.permission = gfs2_permission,
	.setattr = gfs2_setattr,
	.setattr = gfs2_setattr,
	.getattr = gfs2_getattr,
	.getattr = gfs2_getattr,
Loading