diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-04 15:36:54 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-04 15:36:54 -0500 |
| commit | c5974b835a909ff15c3b7e6cf6789b5eb919f419 (patch) | |
| tree | 959088bbf10da0d8496b1310fd6f3be6ea11966e | |
| parent | 14107c750b840d6efd7fdf2f6d513f35e2eb6230 (diff) | |
| parent | 3e10e716abf3c71bdb5d86b8f507f9e72236c9cd (diff) | |
Merge branch 'limits_cleanup' of git://decibel.fi.muni.cz/~xslaby/linux
* 'limits_cleanup' of git://decibel.fi.muni.cz/~xslaby/linux:
resource: add helpers for fetching rlimits
resource: move kernel function inside __KERNEL__
SECURITY: selinux, fix update_rlimit_cpu parameter
| -rw-r--r-- | include/linux/resource.h | 8 | ||||
| -rw-r--r-- | include/linux/sched.h | 22 | ||||
| -rw-r--r-- | security/selinux/hooks.c | 2 |
3 files changed, 29 insertions, 3 deletions
diff --git a/include/linux/resource.h b/include/linux/resource.h index 40fc7e626082..f1e914eefeab 100644 --- a/include/linux/resource.h +++ b/include/linux/resource.h | |||
| @@ -3,8 +3,6 @@ | |||
| 3 | 3 | ||
| 4 | #include <linux/time.h> | 4 | #include <linux/time.h> |
| 5 | 5 | ||
| 6 | struct task_struct; | ||
| 7 | |||
| 8 | /* | 6 | /* |
| 9 | * Resource control/accounting header file for linux | 7 | * Resource control/accounting header file for linux |
| 10 | */ | 8 | */ |
| @@ -70,6 +68,12 @@ struct rlimit { | |||
| 70 | */ | 68 | */ |
| 71 | #include <asm/resource.h> | 69 | #include <asm/resource.h> |
| 72 | 70 | ||
| 71 | #ifdef __KERNEL__ | ||
| 72 | |||
| 73 | struct task_struct; | ||
| 74 | |||
| 73 | int getrusage(struct task_struct *p, int who, struct rusage __user *ru); | 75 | int getrusage(struct task_struct *p, int who, struct rusage __user *ru); |
| 74 | 76 | ||
| 77 | #endif /* __KERNEL__ */ | ||
| 78 | |||
| 75 | #endif | 79 | #endif |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f2f842db03ce..8d4991be9d53 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -2601,6 +2601,28 @@ static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p) | |||
| 2601 | } | 2601 | } |
| 2602 | #endif /* CONFIG_MM_OWNER */ | 2602 | #endif /* CONFIG_MM_OWNER */ |
| 2603 | 2603 | ||
| 2604 | static inline unsigned long task_rlimit(const struct task_struct *tsk, | ||
| 2605 | unsigned int limit) | ||
| 2606 | { | ||
| 2607 | return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur); | ||
| 2608 | } | ||
| 2609 | |||
| 2610 | static inline unsigned long task_rlimit_max(const struct task_struct *tsk, | ||
| 2611 | unsigned int limit) | ||
| 2612 | { | ||
| 2613 | return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max); | ||
| 2614 | } | ||
| 2615 | |||
| 2616 | static inline unsigned long rlimit(unsigned int limit) | ||
| 2617 | { | ||
| 2618 | return task_rlimit(current, limit); | ||
| 2619 | } | ||
| 2620 | |||
| 2621 | static inline unsigned long rlimit_max(unsigned int limit) | ||
| 2622 | { | ||
| 2623 | return task_rlimit_max(current, limit); | ||
| 2624 | } | ||
| 2625 | |||
| 2604 | #endif /* __KERNEL__ */ | 2626 | #endif /* __KERNEL__ */ |
| 2605 | 2627 | ||
| 2606 | #endif | 2628 | #endif |
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 7a374c2eb043..9a2ee845e9d4 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
| @@ -2365,7 +2365,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm) | |||
| 2365 | initrlim = init_task.signal->rlim + i; | 2365 | initrlim = init_task.signal->rlim + i; |
| 2366 | rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur); | 2366 | rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur); |
| 2367 | } | 2367 | } |
| 2368 | update_rlimit_cpu(rlim->rlim_cur); | 2368 | update_rlimit_cpu(current->signal->rlim[RLIMIT_CPU].rlim_cur); |
| 2369 | } | 2369 | } |
| 2370 | } | 2370 | } |
| 2371 | 2371 | ||
