summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Menage <menage@google.com>2008-04-29 00:59:58 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 08:06:08 -0700
commit2c7eabf37647dd459d555e76954b4de87be2321f (patch)
tree553a080db29ad1d9724e6c7da30f64f5fe7cc12a
parentf4c753b7eacc277e506066abdda351cbc1cf8e6a (diff)
CGroup API files: add res_counter_read_u64()
Adds a function for returning the value of a resource counter member, in a form suitable for use in a cgroup read_u64 control file method. Signed-off-by: Paul Menage <menage@google.com> Cc: "Li Zefan" <lizf@cn.fujitsu.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Paul Jackson <pj@sgi.com> Cc: Pavel Emelyanov <xemul@openvz.org> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: "YAMAMOTO Takashi" <yamamoto@valinux.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/res_counter.h5
-rw-r--r--kernel/res_counter.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h
index 61363ce896d..8cb1ecd420a 100644
--- a/include/linux/res_counter.h
+++ b/include/linux/res_counter.h
@@ -39,8 +39,9 @@ struct res_counter {
spinlock_t lock;
};
-/*
+/**
* Helpers to interact with userspace
+ * res_counter_read_u64() - returns the value of the specified member.
* res_counter_read/_write - put/get the specified fields from the
* res_counter struct to/from the user
*
@@ -51,6 +52,8 @@ struct res_counter {
* @pos: and the offset.
*/
+u64 res_counter_read_u64(struct res_counter *counter, int member);
+
ssize_t res_counter_read(struct res_counter *counter, int member,
const char __user *buf, size_t nbytes, loff_t *pos,
int (*read_strategy)(unsigned long long val, char *s));
diff --git a/kernel/res_counter.c b/kernel/res_counter.c
index a508c276946..70587657dda 100644
--- a/kernel/res_counter.c
+++ b/kernel/res_counter.c
@@ -93,6 +93,11 @@ ssize_t res_counter_read(struct res_counter *counter, int member,
pos, buf, s - buf);
}
+u64 res_counter_read_u64(struct res_counter *counter, int member)
+{
+ return *res_counter_member(counter, member);
+}
+
ssize_t res_counter_write(struct res_counter *counter, int member,
const char __user *userbuf, size_t nbytes, loff_t *pos,
int (*write_strategy)(char *st_buf, unsigned long long *val))