diff options
author | Rob Jones <rob.jones@codethink.co.uk> | 2014-10-10 00:28:03 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-10 04:25:57 +0200 |
commit | b208ce32927ac2c4bf14edebfb3197acd7673165 (patch) | |
tree | feb00d4c9c4f12aa6a5f14b6c3c74b6f6d95b4b3 | |
parent | mm/vmalloc.c: use seq_open_private() instead of seq_open() (diff) | |
download | linux-b208ce32927ac2c4bf14edebfb3197acd7673165.tar.xz linux-b208ce32927ac2c4bf14edebfb3197acd7673165.zip |
mm/slab.c: use __seq_open_private() instead of seq_open()
Using __seq_open_private() removes boilerplate code from slabstats_open()
The resultant code is shorter and easier to follow.
This patch does not change any functionality.
Signed-off-by: Rob Jones <rob.jones@codethink.co.uk>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | mm/slab.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/mm/slab.c b/mm/slab.c index 655d65c3f010..154aac8411c5 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -4178,19 +4178,15 @@ static const struct seq_operations slabstats_op = { static int slabstats_open(struct inode *inode, struct file *file) { - unsigned long *n = kzalloc(PAGE_SIZE, GFP_KERNEL); - int ret = -ENOMEM; - if (n) { - ret = seq_open(file, &slabstats_op); - if (!ret) { - struct seq_file *m = file->private_data; - *n = PAGE_SIZE / (2 * sizeof(unsigned long)); - m->private = n; - n = NULL; - } - kfree(n); - } - return ret; + unsigned long *n; + + n = __seq_open_private(file, &slabstats_op, PAGE_SIZE); + if (!n) + return -ENOMEM; + + *n = PAGE_SIZE / (2 * sizeof(unsigned long)); + + return 0; } static const struct file_operations proc_slabstats_operations = { |