aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2010-03-19 03:05:10 -0400
committerJens Axboe <jens.axboe@oracle.com>2010-03-19 03:05:10 -0400
commitb4b7a4ef097f288f724420b473dbf92a89c0ab7e (patch)
tree23ad8101e3e77c32a8d1e1b95a9c1cd7f7a475b7 /include/linux
parente9ce335df51ff782035a15c261a3c0c9892a1767 (diff)
parenta3d3203e4bb40f253b1541e310dc0f9305be7c84 (diff)
Merge branch 'master' into for-linus
Conflicts: block/Kconfig Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/acct.h3
-rw-r--r--include/linux/cgroup.h53
-rw-r--r--include/linux/compat.h3
-rw-r--r--include/linux/coredump.h10
-rw-r--r--include/linux/cred.h2
-rw-r--r--include/linux/decompress/mm.h14
-rw-r--r--include/linux/device.h40
-rw-r--r--include/linux/dm9000.h2
-rw-r--r--include/linux/dma-mapping.h24
-rw-r--r--include/linux/ethtool.h24
-rw-r--r--include/linux/hil.h16
-rw-r--r--include/linux/hw_breakpoint.h8
-rw-r--r--include/linux/i2c-algo-bit.h2
-rw-r--r--include/linux/i2c-xiic.h43
-rw-r--r--include/linux/init_task.h8
-rw-r--r--include/linux/input.h20
-rw-r--r--include/linux/iocontext.h2
-rw-r--r--include/linux/ioport.h18
-rw-r--r--include/linux/ipc_namespace.h5
-rw-r--r--include/linux/ipmi_smi.h1
-rw-r--r--include/linux/kmod.h1
-rw-r--r--include/linux/kobject.h14
-rw-r--r--include/linux/lockdep.h4
-rw-r--r--include/linux/lru_cache.h2
-rw-r--r--include/linux/memcontrol.h6
-rw-r--r--include/linux/mm.h8
-rw-r--r--include/linux/mm_types.h2
-rw-r--r--include/linux/mmzone.h2
-rw-r--r--include/linux/module.h1
-rw-r--r--include/linux/msdos_fs.h3
-rw-r--r--include/linux/nodemask.h2
-rw-r--r--include/linux/page_cgroup.h2
-rw-r--r--include/linux/pci-dma.h11
-rw-r--r--include/linux/pci.h3
-rw-r--r--include/linux/perf_event.h27
-rw-r--r--include/linux/platform_device.h9
-rw-r--r--include/linux/poll.h2
-rw-r--r--include/linux/power_supply.h1
-rw-r--r--include/linux/ptrace.h5
-rw-r--r--include/linux/rbtree.h8
-rw-r--r--include/linux/rcupdate.h49
-rw-r--r--include/linux/reboot.h1
-rw-r--r--include/linux/rfkill.h2
-rw-r--r--include/linux/rtc.h6
-rw-r--r--include/linux/rtmutex.h2
-rw-r--r--include/linux/rwlock.h20
-rw-r--r--include/linux/sched.h8
-rw-r--r--include/linux/serial_core.h11
-rw-r--r--include/linux/signal.h2
-rw-r--r--include/linux/snmp.h2
-rw-r--r--include/linux/spi/ads7846.h3
-rw-r--r--include/linux/spinlock.h13
-rw-r--r--include/linux/swap.h9
-rw-r--r--include/linux/syscalls.h11
-rw-r--r--include/linux/sysdev.h21
-rw-r--r--include/linux/sysfs.h61
-rw-r--r--include/linux/taskstats_kern.h7
-rw-r--r--include/linux/tty.h1
-rw-r--r--include/linux/tty_ldisc.h8
-rw-r--r--include/linux/usb.h6
-rw-r--r--include/linux/usb/audio.h2
-rw-r--r--include/linux/virtio.h1
-rw-r--r--include/linux/virtio_9p.h12
63 files changed, 533 insertions, 136 deletions
diff --git a/include/linux/acct.h b/include/linux/acct.h
index 882dc7248766..3e4737fa6cce 100644
--- a/include/linux/acct.h
+++ b/include/linux/acct.h
@@ -121,16 +121,15 @@ struct vfsmount;
121struct super_block; 121struct super_block;
122struct pacct_struct; 122struct pacct_struct;
123struct pid_namespace; 123struct pid_namespace;
124extern int acct_parm[]; /* for sysctl */
124extern void acct_auto_close_mnt(struct vfsmount *m); 125extern void acct_auto_close_mnt(struct vfsmount *m);
125extern void acct_auto_close(struct super_block *sb); 126extern void acct_auto_close(struct super_block *sb);
126extern void acct_init_pacct(struct pacct_struct *pacct);
127extern void acct_collect(long exitcode, int group_dead); 127extern void acct_collect(long exitcode, int group_dead);
128extern void acct_process(void); 128extern void acct_process(void);
129extern void acct_exit_ns(struct pid_namespace *); 129extern void acct_exit_ns(struct pid_namespace *);
130#else 130#else
131#define acct_auto_close_mnt(x) do { } while (0) 131#define acct_auto_close_mnt(x) do { } while (0)
132#define acct_auto_close(x) do { } while (0) 132#define acct_auto_close(x) do { } while (0)
133#define acct_init_pacct(x) do { } while (0)
134#define acct_collect(x,y) do { } while (0) 133#define acct_collect(x,y) do { } while (0)
135#define acct_process() do { } while (0) 134#define acct_process() do { } while (0)
136#define acct_exit_ns(ns) do { } while (0) 135#define acct_exit_ns(ns) do { } while (0)
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index c9bbcb2a75ae..b8ad1ea99586 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -37,16 +37,24 @@ extern void cgroup_post_fork(struct task_struct *p);
37extern void cgroup_exit(struct task_struct *p, int run_callbacks); 37extern void cgroup_exit(struct task_struct *p, int run_callbacks);
38extern int cgroupstats_build(struct cgroupstats *stats, 38extern int cgroupstats_build(struct cgroupstats *stats,
39 struct dentry *dentry); 39 struct dentry *dentry);
40extern int cgroup_load_subsys(struct cgroup_subsys *ss);
41extern void cgroup_unload_subsys(struct cgroup_subsys *ss);
40 42
41extern const struct file_operations proc_cgroup_operations; 43extern const struct file_operations proc_cgroup_operations;
42 44
43/* Define the enumeration of all cgroup subsystems */ 45/* Define the enumeration of all builtin cgroup subsystems */
44#define SUBSYS(_x) _x ## _subsys_id, 46#define SUBSYS(_x) _x ## _subsys_id,
45enum cgroup_subsys_id { 47enum cgroup_subsys_id {
46#include <linux/cgroup_subsys.h> 48#include <linux/cgroup_subsys.h>
47 CGROUP_SUBSYS_COUNT 49 CGROUP_BUILTIN_SUBSYS_COUNT
48}; 50};
49#undef SUBSYS 51#undef SUBSYS
52/*
53 * This define indicates the maximum number of subsystems that can be loaded
54 * at once. We limit to this many since cgroupfs_root has subsys_bits to keep
55 * track of all of them.
56 */
57#define CGROUP_SUBSYS_COUNT (BITS_PER_BYTE*sizeof(unsigned long))
50 58
51/* Per-subsystem/per-cgroup state maintained by the system. */ 59/* Per-subsystem/per-cgroup state maintained by the system. */
52struct cgroup_subsys_state { 60struct cgroup_subsys_state {
@@ -76,6 +84,12 @@ enum {
76 CSS_REMOVED, /* This CSS is dead */ 84 CSS_REMOVED, /* This CSS is dead */
77}; 85};
78 86
87/* Caller must verify that the css is not for root cgroup */
88static inline void __css_get(struct cgroup_subsys_state *css, int count)
89{
90 atomic_add(count, &css->refcnt);
91}
92
79/* 93/*
80 * Call css_get() to hold a reference on the css; it can be used 94 * Call css_get() to hold a reference on the css; it can be used
81 * for a reference obtained via: 95 * for a reference obtained via:
@@ -87,7 +101,7 @@ static inline void css_get(struct cgroup_subsys_state *css)
87{ 101{
88 /* We don't need to reference count the root state */ 102 /* We don't need to reference count the root state */
89 if (!test_bit(CSS_ROOT, &css->flags)) 103 if (!test_bit(CSS_ROOT, &css->flags))
90 atomic_inc(&css->refcnt); 104 __css_get(css, 1);
91} 105}
92 106
93static inline bool css_is_removed(struct cgroup_subsys_state *css) 107static inline bool css_is_removed(struct cgroup_subsys_state *css)
@@ -118,11 +132,11 @@ static inline bool css_tryget(struct cgroup_subsys_state *css)
118 * css_get() or css_tryget()