* [PATCHv3 1/6] lib/string: introduce helper to get base file name from given path
[not found] <1350388094-18805-1-git-send-email-andriy.shevchenko@linux.intel.com>
@ 2012-10-16 11:48 ` Andy Shevchenko
2012-10-16 11:48 ` [PATCHv3 4/6] mm: reuse kbasename() functionality Andy Shevchenko
1 sibling, 0 replies; 2+ messages in thread
From: Andy Shevchenko @ 2012-10-16 11:48 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, Joe Perches
Cc: Andy Shevchenko, Jason Baron, YAMANE Toshiaki, Greg Kroah-Hartman,
linux-mm, Steven Rostedt, Frederic Weisbecker
There are several places in the kernel that use functionality like basename(3)
with an exception: in case of '/foo/bar/' we expect to get an empty string.
Let's do it common helper for them.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Jason Baron <jbaron@redhat.com>
Cc: YAMANE Toshiaki <yamanetoshi@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-mm@kvack.org
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
---
include/linux/string.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/include/linux/string.h b/include/linux/string.h
index 6301258..ac889c5 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -143,4 +143,15 @@ static inline bool strstarts(const char *str, const char *prefix)
extern size_t memweight(const void *ptr, size_t bytes);
+/**
+ * kbasename - return the last part of a pathname.
+ *
+ * @path: path to extract the filename from.
+ */
+static inline const char *kbasename(const char *path)
+{
+ const char *tail = strrchr(path, '/');
+ return tail ? tail + 1 : path;
+}
+
#endif /* _LINUX_STRING_H_ */
--
1.7.10.4
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCHv3 4/6] mm: reuse kbasename() functionality
[not found] <1350388094-18805-1-git-send-email-andriy.shevchenko@linux.intel.com>
2012-10-16 11:48 ` [PATCHv3 1/6] lib/string: introduce helper to get base file name from given path Andy Shevchenko
@ 2012-10-16 11:48 ` Andy Shevchenko
1 sibling, 0 replies; 2+ messages in thread
From: Andy Shevchenko @ 2012-10-16 11:48 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, Joe Perches; +Cc: Andy Shevchenko, linux-mm
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: linux-mm@kvack.org
---
mm/memory.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/mm/memory.c b/mm/memory.c
index 5823f29..06158b7 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -58,6 +58,7 @@
#include <linux/elf.h>
#include <linux/gfp.h>
#include <linux/migrate.h>
+#include <linux/string.h>
#include <asm/io.h>
#include <asm/pgalloc.h>
@@ -4034,15 +4035,12 @@ void print_vma_addr(char *prefix, unsigned long ip)
struct file *f = vma->vm_file;
char *buf = (char *)__get_free_page(GFP_KERNEL);
if (buf) {
- char *p, *s;
+ char *p;
p = d_path(&f->f_path, buf, PAGE_SIZE);
if (IS_ERR(p))
p = "?";
- s = strrchr(p, '/');
- if (s)
- p = s+1;
- printk("%s%s[%lx+%lx]", prefix, p,
+ printk("%s%s[%lx+%lx]", prefix, kbasename(p),
vma->vm_start,
vma->vm_end - vma->vm_start);
free_page((unsigned long)buf);
--
1.7.10.4
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-10-16 11:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1350388094-18805-1-git-send-email-andriy.shevchenko@linux.intel.com>
2012-10-16 11:48 ` [PATCHv3 1/6] lib/string: introduce helper to get base file name from given path Andy Shevchenko
2012-10-16 11:48 ` [PATCHv3 4/6] mm: reuse kbasename() functionality Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).