Re: [PATCH] acct: eliminate compile warning

From: Andrew Morton
Date: Tue Aug 26 2014 - 19:25:15 EST


On Thu, 21 Aug 2014 09:58:46 +0800 Ying Xue <ying.xue@xxxxxxxxxxxxx> wrote:

> If ACCT_VERSION is not defined to 3, below warning appears:
> CC kernel/acct.o
> kernel/acct.c: In function ___do_acct_process___:
> kernel/acct.c:475:24: warning: unused variable ___ns___ [-Wunused-variable]
>
> Signed-off-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
> ---
> kernel/acct.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/acct.c b/kernel/acct.c
> index b4c667d..bb52701 100644
> --- a/kernel/acct.c
> +++ b/kernel/acct.c
> @@ -472,7 +472,6 @@ static void do_acct_process(struct bsd_acct_struct *acct)
> acct_t ac;
> unsigned long flim;
> const struct cred *orig_cred;
> - struct pid_namespace *ns = acct->ns;
> struct file *file = acct->file;
>
> /*
> @@ -500,9 +499,10 @@ static void do_acct_process(struct bsd_acct_struct *acct)
> ac.ac_gid16 = ac.ac_gid;
> #endif
> #if ACCT_VERSION == 3
> - ac.ac_pid = task_tgid_nr_ns(current, ns);
> + ac.ac_pid = task_tgid_nr_ns(current, acct->ns);
> rcu_read_lock();
> - ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent), ns);
> + ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent),
> + acct->ns);
> rcu_read_unlock();
> #endif

With my gcc this change increases .text from 5429 to 5437 bytes. If we
do it this way:

--- a/kernel/acct.c~acct-eliminate-compile-warning-fix
+++ a/kernel/acct.c
@@ -499,11 +499,15 @@ static void do_acct_process(struct bsd_a
ac.ac_gid16 = ac.ac_gid;
#endif
#if ACCT_VERSION == 3
- ac.ac_pid = task_tgid_nr_ns(current, acct->ns);
- rcu_read_lock();
- ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent),
- acct->ns);
- rcu_read_unlock();
+ {
+ struct pid_namespace *ns = acct->ns;
+
+ ac.ac_pid = task_tgid_nr_ns(current, ns);
+ rcu_read_lock();
+ ac.ac_ppid = task_tgid_nr_ns(rcu_dereference(current->real_parent),
+ ns);
+ rcu_read_unlock();
+ }
#endif
/*
* Get freeze protection. If the fs is frozen, just skip the write

it actually shrinks to 5415 bytes. Weird.


We could actually do

if (ACCT_VERSION == 3)
...

in lots of places in acct.c. The code would be less ugly and
compilation coverage testing would improve.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/