* [PATCH 0/2] fs: proc: use seq_open_private()
@ 2014-09-12 14:09 Rob Jones
2014-09-12 14:09 ` [PATCH 1/2] fs: proc: use __seq_open_private() Rob Jones
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Rob Jones @ 2014-09-12 14:09 UTC (permalink / raw)
To: linux-kernel; +Cc: akpm, linux-kernel, rob.jones
Use __seq_open_private() to reduce boilerplate code in proc.
This function has been around, undocumented, for years. It can simplify
the set up code for seq file operations.
Signed-off-by: Rob Jones <rob.jones@codethink.co.uk>
Rob Jones (2):
fs: proc: use __seq_open_private()
fs: proc: use __seq_open_private()
fs/proc/task_mmu.c | 42 ++++++++++++++++--------------------------
fs/proc/task_nommu.c | 22 ++++++++--------------
2 files changed, 24 insertions(+), 40 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] fs: proc: use __seq_open_private()
2014-09-12 14:09 [PATCH 0/2] fs: proc: use seq_open_private() Rob Jones
@ 2014-09-12 14:09 ` Rob Jones
2014-09-12 21:54 ` Andrew Morton
2014-09-12 14:09 ` [PATCH 2/2] " Rob Jones
2014-09-12 21:50 ` [PATCH 0/2] fs: proc: use seq_open_private() Andrew Morton
2 siblings, 1 reply; 9+ messages in thread
From: Rob Jones @ 2014-09-12 14:09 UTC (permalink / raw)
To: linux-kernel; +Cc: akpm, linux-kernel, rob.jones
Reduce boilerplate code by using __seq_open_private() instead of seq_open().
Signed-off-by: Rob Jones <rob.jones@codethink.co.uk>
---
fs/proc/task_nommu.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
index 678455d..b141050 100644
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
@@ -269,20 +269,14 @@ static int maps_open(struct inode *inode, struct file *file,
const struct seq_operations *ops)
{
struct proc_maps_private *priv;
- int ret = -ENOMEM;
-
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
- if (priv) {
- priv->pid = proc_pid(inode);
- ret = seq_open(file, ops);
- if (!ret) {
- struct seq_file *m = file->private_data;
- m->private = priv;
- } else {
- kfree(priv);
- }
- }
- return ret;
+
+ priv = __seq_open_private(file, ops, sizeof(*priv));
+ if (!priv)
+ return -ENOMEM;
+
+ priv->pid = proc_pid(inode);
+
+ return 0;
}
static int pid_maps_open(struct inode *inode, struct file *file)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] fs: proc: use __seq_open_private()
2014-09-12 14:09 [PATCH 0/2] fs: proc: use seq_open_private() Rob Jones
2014-09-12 14:09 ` [PATCH 1/2] fs: proc: use __seq_open_private() Rob Jones
@ 2014-09-12 14:09 ` Rob Jones
2014-09-12 21:50 ` [PATCH 0/2] fs: proc: use seq_open_private() Andrew Morton
2 siblings, 0 replies; 9+ messages in thread
From: Rob Jones @ 2014-09-12 14:09 UTC (permalink / raw)
To: linux-kernel; +Cc: akpm, linux-kernel, rob.jones
Reduce boilerplate code by using __seq_open_private() instead of seq_open().
Signed-off-by: Rob Jones <rob.jones@codethink.co.uk>
---
fs/proc/task_mmu.c | 42 ++++++++++++++++--------------------------
1 file changed, 16 insertions(+), 26 deletions(-)
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 442177b..c8e9045 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -235,19 +235,14 @@ static int do_maps_open(struct inode *inode, struct file *file,
const struct seq_operations *ops)
{
struct proc_maps_private *priv;
- int ret = -ENOMEM;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
- if (priv) {
- priv->pid = proc_pid(inode);
- ret = seq_open(file, ops);
- if (!ret) {
- struct seq_file *m = file->private_data;
- m->private = priv;
- } else {
- kfree(priv);
- }
- }
- return ret;
+
+ priv = __seq_open_private(file, ops, sizeof(*priv));
+ if (!priv)
+ return -ENOMEM;
+
+ priv->pid = proc_pid(inode);
+
+ return 0;
}
static void
@@ -1495,19 +1490,14 @@ static int numa_maps_open(struct inode *inode, struct file *file,
const struct seq_operations *ops)
{
struct numa_maps_private *priv;
- int ret = -ENOMEM;
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
- if (priv) {
- priv->proc_maps.pid = proc_pid(inode);
- ret = seq_open(file, ops);
- if (!ret) {
- struct seq_file *m = file->private_data;
- m->private = priv;
- } else {
- kfree(priv);
- }
- }
- return ret;
+
+ priv = __seq_open_private(file, ops, sizeof(*priv));
+ if (!priv)
+ return -ENOMEM;
+
+ priv->proc_maps.pid = proc_pid(inode);
+
+ return 0;
}
static int pid_numa_maps_open(struct inode *inode, struct file *file)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/2] fs: proc: use seq_open_private()
2014-09-12 14:09 [PATCH 0/2] fs: proc: use seq_open_private() Rob Jones
2014-09-12 14:09 ` [PATCH 1/2] fs: proc: use __seq_open_private() Rob Jones
2014-09-12 14:09 ` [PATCH 2/2] " Rob Jones
@ 2014-09-12 21:50 ` Andrew Morton
2014-09-15 7:21 ` Rob Jones
2 siblings, 1 reply; 9+ messages in thread
From: Andrew Morton @ 2014-09-12 21:50 UTC (permalink / raw)
To: Rob Jones; +Cc: linux-kernel, linux-kernel
On Fri, 12 Sep 2014 15:09:36 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
> fs: proc: use __seq_open_private()
> fs: proc: use __seq_open_private()
See the problem? We have two different patches, both named the same.
I renamed them to
fs/proc/task_nommu.c: use __seq_open_private()
fs/proc/task_mmu.c: use __seq_open_private()
I really don't understand this practice of replacing "/" with ": " in
patch titles. Why not just use the "/"?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] fs: proc: use __seq_open_private()
2014-09-12 14:09 ` [PATCH 1/2] fs: proc: use __seq_open_private() Rob Jones
@ 2014-09-12 21:54 ` Andrew Morton
2014-09-15 13:42 ` Rob Jones
2014-09-29 16:02 ` Rob Jones
0 siblings, 2 replies; 9+ messages in thread
From: Andrew Morton @ 2014-09-12 21:54 UTC (permalink / raw)
To: Rob Jones; +Cc: linux-kernel, linux-kernel
On Fri, 12 Sep 2014 15:09:37 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
> Reduce boilerplate code by using __seq_open_private() instead of seq_open().
http://ozlabs.org/~akpm/mmots/broken-out/fs-proc-task_nommuc-change-maps_open-to-use-__seq_open_private.patch
already did this.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/2] fs: proc: use seq_open_private()
2014-09-12 21:50 ` [PATCH 0/2] fs: proc: use seq_open_private() Andrew Morton
@ 2014-09-15 7:21 ` Rob Jones
2014-09-15 7:27 ` Andrew Morton
0 siblings, 1 reply; 9+ messages in thread
From: Rob Jones @ 2014-09-15 7:21 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-kernel
On 12/09/14 22:50, Andrew Morton wrote:
> On Fri, 12 Sep 2014 15:09:36 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
>
>> fs: proc: use __seq_open_private()
>> fs: proc: use __seq_open_private()
>
> See the problem? We have two different patches, both named the same.
Always another gotcha! :-)
Seriously, does it say anywhere that patch names have to be unique? It
makes perfect sense when it's pointed out but it never occurred to me.
I'll make sure I don't do it again.
>
> I renamed them to
>
> fs/proc/task_nommu.c: use __seq_open_private()
> fs/proc/task_mmu.c: use __seq_open_private()
Thank you, much appreciated. I would have been happy to re-submit.
>
> I really don't understand this practice of replacing "/" with ": " in
> patch titles. Why not just use the "/"?
I'll do this in future too.
Sigh. So much to learn.
--
Rob Jones
Codethink Ltd
mailto:rob.jones@codethink.co.uk
tel:+44 161 236 5575
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/2] fs: proc: use seq_open_private()
2014-09-15 7:21 ` Rob Jones
@ 2014-09-15 7:27 ` Andrew Morton
0 siblings, 0 replies; 9+ messages in thread
From: Andrew Morton @ 2014-09-15 7:27 UTC (permalink / raw)
To: Rob Jones; +Cc: linux-kernel, linux-kernel
On Mon, 15 Sep 2014 08:21:45 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
> On 12/09/14 22:50, Andrew Morton wrote:
> > On Fri, 12 Sep 2014 15:09:36 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
> >
> >> fs: proc: use __seq_open_private()
> >> fs: proc: use __seq_open_private()
> >
> > See the problem? We have two different patches, both named the same.
>
> Always another gotcha! :-)
>
> Seriously, does it say anywhere that patch names have to be unique? It
> makes perfect sense when it's pointed out but it never occurred to me.
Not explicitly as far as I know. Documentation/SubmittingPatches
implies it. Search for "unique".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] fs: proc: use __seq_open_private()
2014-09-12 21:54 ` Andrew Morton
@ 2014-09-15 13:42 ` Rob Jones
2014-09-29 16:02 ` Rob Jones
1 sibling, 0 replies; 9+ messages in thread
From: Rob Jones @ 2014-09-15 13:42 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-kernel
On 12/09/14 22:54, Andrew Morton wrote:
> On Fri, 12 Sep 2014 15:09:37 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
>
>> Reduce boilerplate code by using __seq_open_private() instead of seq_open().
>
> http://ozlabs.org/~akpm/mmots/broken-out/fs-proc-task_nommuc-change-maps_open-to-use-__seq_open_private.patch
> already did this.
>
Great. Too recent to be in my source tree though, I'm afraid.
Even so, it's nice to see that his code is identical to mine (except
for the assign-on-declaration, I prefer the whitespace, but hey).
I wonder if this was triggered by my documentation patch for the
routine. If so, that makes me happy :-)
--
Rob Jones
Codethink Ltd
mailto:rob.jones@codethink.co.uk
tel:+44 161 236 5575
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] fs: proc: use __seq_open_private()
2014-09-12 21:54 ` Andrew Morton
2014-09-15 13:42 ` Rob Jones
@ 2014-09-29 16:02 ` Rob Jones
1 sibling, 0 replies; 9+ messages in thread
From: Rob Jones @ 2014-09-29 16:02 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, linux-kernel
On 12/09/14 22:54, Andrew Morton wrote:
> On Fri, 12 Sep 2014 15:09:37 +0100 Rob Jones <rob.jones@codethink.co.uk> wrote:
>
>> Reduce boilerplate code by using __seq_open_private() instead of seq_open().
>
> http://ozlabs.org/~akpm/mmots/broken-out/fs-proc-task_nommuc-change-maps_open-to-use-__seq_open_private.patch
> already did this.
This duplicated only half of my submission, patch 2/2 did a similar
operation on a different file (fs/proc/task_mmu.c).
https://lkml.org/lkml/2014/9/12/347
Is that one actually going in (with Andrew's rename to include the file
name) or should I resubmit it on its own?
--
Rob Jones
Codethink Ltd
mailto:rob.jones@codethink.co.uk
tel:+44 161 236 5575
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-09-29 16:02 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-12 14:09 [PATCH 0/2] fs: proc: use seq_open_private() Rob Jones
2014-09-12 14:09 ` [PATCH 1/2] fs: proc: use __seq_open_private() Rob Jones
2014-09-12 21:54 ` Andrew Morton
2014-09-15 13:42 ` Rob Jones
2014-09-29 16:02 ` Rob Jones
2014-09-12 14:09 ` [PATCH 2/2] " Rob Jones
2014-09-12 21:50 ` [PATCH 0/2] fs: proc: use seq_open_private() Andrew Morton
2014-09-15 7:21 ` Rob Jones
2014-09-15 7:27 ` Andrew Morton
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).