#
3b994d98 |
| 10-Jan-2015 |
Al Viro <viro@zeniv.linux.org.uk> |
get rid of the second argument of acct_kill()
Replace the old ns->bacct only with NULL and only if it still points to acct. And assign the new value to it *before* calling acct_kill() in acct_on().
get rid of the second argument of acct_kill()
Replace the old ns->bacct only with NULL and only if it still points to acct. And assign the new value to it *before* calling acct_kill() in acct_on(). That way we don't need to pass the new acct to acct_kill().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
34cece2e |
| 10-Jan-2015 |
Al Viro <viro@zeniv.linux.org.uk> |
take count and rcu_head out of fs_pin
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
32426f66 |
| 10-Jan-2015 |
Al Viro <viro@zeniv.linux.org.uk> |
pull bumping refcount into ->kill()
there will be one more change of ->kill() calling conventions; this isn't final.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
9e251d02 |
| 10-Jan-2015 |
Al Viro <viro@zeniv.linux.org.uk> |
kill pin_put()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
067b722f |
| 09-Oct-2014 |
Ying Xue <ying.xue@windriver.com> |
acct: eliminate compile warning
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: u
acct: eliminate compile warning
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]
[akpm@linux-foundation.org: retain the local for code size improvements Signed-off-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
show more ...
|
#
2577d92e |
| 30-Jul-2014 |
Ionut Alexa <ionut.m.alexa@gmail.com> |
kernel/acct.c: fix coding style warnings and errors
Signed-off-by: Ionut Alexa <ionut.m.alexa@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.l
kernel/acct.c: fix coding style warnings and errors
Signed-off-by: Ionut Alexa <ionut.m.alexa@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
3064c356 |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
death to mnt_pinned
Rather than playing silly buggers with vfsmount refcounts, just have acct_on() ask fs/namespace.c for internal clone of file->f_path.mnt and replace it with said clone. Then att
death to mnt_pinned
Rather than playing silly buggers with vfsmount refcounts, just have acct_on() ask fs/namespace.c for internal clone of file->f_path.mnt and replace it with said clone. Then attach the pin to original vfsmount. Voila - the clone will be alive until the file gets closed, making sure that underlying superblock remains active, etc., and we can drop the original vfsmount, so that it's not kept busy. If the file lives until the final mntput of the original vfsmount, we'll notice that there's an fs_pin (one in bsd_acct_struct that holds that file) and mnt_pin_kill() will take it out. Since ->kill() is synchronous, we won't proceed past that point until these files are closed (and private clones of our vfsmount are gone), so we get the same ordering warranties we used to get.
mnt_pin()/mnt_unpin()/->mnt_pinned is gone now, and good riddance - it never became usable outside of kernel/acct.c (and racy wrt umount even there).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
efb170c2 |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
take fs_pin stuff to fs/*
Add a new field to fs_pin - kill(pin). That's what umount and r/o remount will be calling for all pins attached to vfsmount and superblock resp. Called after bumping the r
take fs_pin stuff to fs/*
Add a new field to fs_pin - kill(pin). That's what umount and r/o remount will be calling for all pins attached to vfsmount and superblock resp. Called after bumping the refcount, so it won't go away under us. Dropping the refcount is responsibility of the instance. All generic stuff moved to fs/fs_pin.c; the next step will rip all the knowledge of kernel/acct.c from fs/super.c and fs/namespace.c. After that - death to mnt_pin(); it was intended to be usable as generic mechanism for code that wants to attach objects to vfsmount, so that they would not make the sucker busy and would get killed on umount. Never got it right; it remained acct.c-specific all along. Now it's very close to being killable.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
1629d0eb |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
start carving bsd_acct_struct up
pull generic parts into struct fs_pin. Eventually we want those to replace mnt_pin()/mnt_unpin() mess; that stuff will move to fs/*.
Signed-off-by: Al Viro <viro@z
start carving bsd_acct_struct up
pull generic parts into struct fs_pin. Eventually we want those to replace mnt_pin()/mnt_unpin() mess; that stuff will move to fs/*.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
215748e6 |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: move mnt_pin() upwards.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
17c0a5aa |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
make acct_kill() wait for file closing.
Do actual closing of file via schedule_work(). And use __fput_sync() there.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
2798d4ce |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: get rid of acct_lock for acct->count
* make acct->count atomic and acct freeing - rcu-delayed. * instead of grabbing acct_lock around the places where we take a reference, do that under rcu_re
acct: get rid of acct_lock for acct->count
* make acct->count atomic and acct freeing - rcu-delayed. * instead of grabbing acct_lock around the places where we take a reference, do that under rcu_read_lock() with atomic_long_inc_not_zero(). * have the new acct locked before making ns->bacct point to it
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
215752fc |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: get rid of acct_list
Put these suckers on per-vfsmount and per-superblock lists instead. Note: right now it's still acct_lock for everything, but that's going to change.
Signed-off-by: Al Vir
acct: get rid of acct_list
Put these suckers on per-vfsmount and per-superblock lists instead. Note: right now it's still acct_lock for everything, but that's going to change.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
54a4d58a |
| 19-Apr-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: simplify check_free_space()
a) file can't be NULL b) file can't be changed under us c) all writes are serialized by acct->lock; no need to mess with spinlock there.
Signed-off-by: Al Viro <vi
acct: simplify check_free_space()
a) file can't be NULL b) file can't be changed under us c) all writes are serialized by acct->lock; no need to mess with spinlock there.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
b8f00e6b |
| 07-Aug-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: new lifetime rules
Do not reuse bsd_acct_struct after closing the damn thing. Structure lifetime is controlled by refcount now. We also have a mutex in there, held over closing and writing (t
acct: new lifetime rules
Do not reuse bsd_acct_struct after closing the damn thing. Structure lifetime is controlled by refcount now. We also have a mutex in there, held over closing and writing (the file is O_APPEND, so we are not losing any concurrency).
As the result, we do not need to bother with get_file()/fput() on log write anymore. Moreover, do_acct_process() only needs acct itself; file and pidns are picked from it.
Killed instances are distinguished by having NULL ->ns. Refcount is protected by acct_lock; anybody taking the mutex needs to grab a reference first.
The things will get a lot simpler in the next commits - this is just the minimal chunk switching to the new lifetime rules.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
9df7fa16 |
| 15-May-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: serialize acct_on()
brute-force - on a global mutex that isn't nested into anything.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
795a2f22 |
| 07-May-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct() should honour the limits from the very beginning
We need to check free space on the first write to freshly opened log.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
e25ff11f |
| 07-May-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
split the slow path in acct_process() off
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
cdd37e23 |
| 27-Apr-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
separate namespace-independent parts of filling acct_t
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
ed44724b |
| 19-Apr-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: switch to __kernel_write()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
ecfdb33d |
| 19-Apr-2014 |
Al Viro <viro@zeniv.linux.org.uk> |
acct: encode_comp_t(0) is 0, fortunately...
There was an amusing bogosity in ac_rw calculation - it tried to do encode_comp_t(encode_comp_t(0) / 1024). Seeing that comp_t is a 3-bit exponent + 13-b
acct: encode_comp_t(0) is 0, fortunately...
There was an amusing bogosity in ac_rw calculation - it tried to do encode_comp_t(encode_comp_t(0) / 1024). Seeing that comp_t is a 3-bit exponent + 13-bit mantissa... it's a good thing that 0 is represented by all-bits-clear.
The history of that one is interesting - it was introduced in 2.1.68pre1, when acct.c had been reworked and moved to separate file. Two months later (2.1.86) somebody has noticed that the sucker won't compile - there was no task_struct::io_usage. At which point the ac_io calculation had changed from encode_comp_t(current->io_usage) to encode_comp_t(0) and the bug in the next line (absolutely real back then, had it ever managed to compile) become a harmless bogosity. Looks like nobody has ever noticed until now.
Anyway, let's bury that idiocy now that it got noticed. 17 years is long enough...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
#
ccbf62d8 |
| 16-Jul-2014 |
Thomas Gleixner <tglx@linutronix.de> |
sched: Make task->start_time nanoseconds based
Simplify the timespec to nsec/usec conversions.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: John Stultz <john.stultz@linaro.org>
|
#
22001821 |
| 11-Jun-2014 |
Thomas Gleixner <tglx@linutronix.de> |
acct: Use ktime_get_ts()
do_posix_clock_monotonic_gettime() is a leftover from the initial posix timer implementation which maps to ktime_get_ts()
Signed-off-by: Thomas Gleixner <tglx@linutronix.de
acct: Use ktime_get_ts()
do_posix_clock_monotonic_gettime() is a leftover from the initial posix timer implementation which maps to ktime_get_ts()
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: John Stultz <john.stultz@linaro.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20140611234606.764810535@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
show more ...
|
#
46c0a8ca |
| 06-Jun-2014 |
Paul McQuade <paulmcquad@gmail.com> |
ipc, kernel: clear whitespace
trailing whitespace
Signed-off-by: Paul McQuade <paulmcquad@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds
ipc, kernel: clear whitespace
trailing whitespace
Signed-off-by: Paul McQuade <paulmcquad@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
show more ...
|
#
7153e402 |
| 06-Jun-2014 |
Paul McQuade <paulmcquad@gmail.com> |
ipc, kernel: use Linux headers
Use #include <linux/uaccess.h> instead of <asm/uaccess.h> Use #include <linux/types.h> instead of <asm/types.h>
Signed-off-by: Paul McQuade <paulmcquad@gmail.com> Sig
ipc, kernel: use Linux headers
Use #include <linux/uaccess.h> instead of <asm/uaccess.h> Use #include <linux/types.h> instead of <asm/types.h>
Signed-off-by: Paul McQuade <paulmcquad@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
show more ...
|