Commit 2c7eabf3 authored by Paul Menage's avatar Paul Menage Committed by Linus Torvalds

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: default avatarPaul 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f4c753b7
...@@ -39,8 +39,9 @@ struct res_counter { ...@@ -39,8 +39,9 @@ struct res_counter {
spinlock_t lock; spinlock_t lock;
}; };
/* /**
* Helpers to interact with userspace * 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_read/_write - put/get the specified fields from the
* res_counter struct to/from the user * res_counter struct to/from the user
* *
...@@ -51,6 +52,8 @@ struct res_counter { ...@@ -51,6 +52,8 @@ struct res_counter {
* @pos: and the offset. * @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, ssize_t res_counter_read(struct res_counter *counter, int member,
const char __user *buf, size_t nbytes, loff_t *pos, const char __user *buf, size_t nbytes, loff_t *pos,
int (*read_strategy)(unsigned long long val, char *s)); int (*read_strategy)(unsigned long long val, char *s));
......
...@@ -93,6 +93,11 @@ ssize_t res_counter_read(struct res_counter *counter, int member, ...@@ -93,6 +93,11 @@ ssize_t res_counter_read(struct res_counter *counter, int member,
pos, buf, s - buf); 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, ssize_t res_counter_write(struct res_counter *counter, int member,
const char __user *userbuf, size_t nbytes, loff_t *pos, const char __user *userbuf, size_t nbytes, loff_t *pos,
int (*write_strategy)(char *st_buf, unsigned long long *val)) int (*write_strategy)(char *st_buf, unsigned long long *val))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment