diff options
author | Vladimir Davydov <vdavydov@parallels.com> | 2014-12-10 15:42:16 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-10 17:41:04 -0800 |
commit | 1df3b26f201f7f08852c14596bc3ee6ba1826f11 (patch) | |
tree | 8eaf11024072d71c3701bc5d25e5d27f446f2ae1 /mm/slab.c | |
parent | b455def28d8a22aee4a13d065b3fd1d296833606 (diff) | |
download | linux-exynos-1df3b26f201f7f08852c14596bc3ee6ba1826f11.tar.gz linux-exynos-1df3b26f201f7f08852c14596bc3ee6ba1826f11.tar.bz2 linux-exynos-1df3b26f201f7f08852c14596bc3ee6ba1826f11.zip |
slab: print slabinfo header in seq show
Currently we print the slabinfo header in the seq start method, which
makes it unusable for showing leaks, so we have leaks_show, which does
practically the same as s_show except it doesn't show the header.
However, we can print the header in the seq show method - we only need
to check if the current element is the first on the list. This will
allow us to use the same set of seq iterators for both leaks and
slabinfo reporting, which is nice.
Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/mm/slab.c b/mm/slab.c index eae2d21cc14f..a2152a2573dd 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -4043,12 +4043,6 @@ ssize_t slabinfo_write(struct file *file, const char __user *buffer, #ifdef CONFIG_DEBUG_SLAB_LEAK -static void *leaks_start(struct seq_file *m, loff_t *pos) -{ - mutex_lock(&slab_mutex); - return seq_list_start(&slab_caches, *pos); -} - static inline int add_caller(unsigned long *n, unsigned long v) { unsigned long *p; @@ -4170,7 +4164,7 @@ static int leaks_show(struct seq_file *m, void *p) } static const struct seq_operations slabstats_op = { - .start = leaks_start, + .start = slab_start, .next = slab_next, .stop = slab_stop, .show = leaks_show, |