summaryrefslogtreecommitdiffstats
path: root/fs/libfs.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-09-16 10:30:04 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-10-24 23:34:49 -0400
commit87dc800be2499128efb3a6f059d75dc8e1e6d503 (patch)
tree6a5aa6bdc7dcb652f8435d4044021c7b9fe9bbc9 /fs/libfs.c
parent12f38872224542c4683ab72a88394fc89b87ca32 (diff)
downloadlinux-87dc800be2499128efb3a6f059d75dc8e1e6d503.tar.gz
linux-87dc800be2499128efb3a6f059d75dc8e1e6d503.tar.bz2
linux-87dc800be2499128efb3a6f059d75dc8e1e6d503.zip
new helper: kfree_put_link()
duplicated to hell and back... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/libfs.c')
-rw-r--r--fs/libfs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/libfs.c b/fs/libfs.c
index 828622a31d30..8c5018493154 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -10,6 +10,7 @@
#include <linux/vfs.h>
#include <linux/quotaops.h>
#include <linux/mutex.h>
+#include <linux/namei.h>
#include <linux/exportfs.h>
#include <linux/writeback.h>
#include <linux/buffer_head.h> /* sync_mapping_buffers */
@@ -992,3 +993,12 @@ int noop_fsync(struct file *file, loff_t start, loff_t end, int datasync)
return 0;
}
EXPORT_SYMBOL(noop_fsync);
+
+void kfree_put_link(struct dentry *dentry, struct nameidata *nd,
+ void *cookie)
+{
+ char *s = nd_get_link(nd);
+ if (!IS_ERR(s))
+ kfree(s);
+}
+EXPORT_SYMBOL(kfree_put_link);