res_counter: introduce res_counter_write_u64()
PATCH 1/3 res_counter: introduce res_counter_write_u64()
This function can be used to assign the value of a resource counter member.
Signed-off-by Li Zefan <[email protected]>
--- include/linux/res_counter.h | 9 ++++++--- kernel/res_counter.c | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-)
include/linux/res_counter.h +6 -3
@@ -41,9 +41,10 @@ struct res_counter {/** * 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 +* res_counter_read_64/_write_u64 - returns/assigns the value of the +* specified member +* res_counter_read/_write - puts/gets the specified fields from the +* res_counter struct to/from the user * * @counter: the counter in question * @member: the field to work with (see RES_xxx below)
@@ -53,6 +54,8 @@ struct res_counter {*/ u64 res_counter_read_u64 (struct res_counter *counter,int member); +void res_counter_write_u64 (struct res_counter *counter,int member, +unsigned long long val); ssize_t res_counter_read(struct res_counter *counter, int member, const char __user *buf, size_t nbytes, loff_t *pos,
kernel/res_counter.c +9 -0
@@ -97,6 +97,15 @@ u64 res_counter_read_u64(struct res_counter *counter, int member)return *res_counter_member (counter, member); } +void res_counter_write_u64 (struct res_counter *counter,int member, +unsigned long long val) +{ +unsigned long long *tmp; + + tmp =res_counter_member (counter, member); + *tmp = val; +} +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))
Signature · 1 line
1.5.4.rc3
Quoted 2 lines · On Tue, 11 Mar 2008 19:08:39 +0900 Li Zefan <[email protected]> wrote:
This function can be used to assign the value of a resource counter member.
Why don't you make this function to do the same work as res_counter_write() ?
Thanks,
-Kame
Quoted 62 lines
Signed-off-by Li Zefan <[email protected]>--- include/linux/res_counter.h | 9 ++++++--- kernel/res_counter.c | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-)include/linux/res_counter.h +6
-3@@ -41,9 +41,10 @@ struct res_counter {/** * 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 +* res_counter_read_64/_write_u64 - returns/assigns the value of the +* specified member +* res_counter_read/_write - puts/gets the specified fields from the +* res_counter struct to/from the user * * @counter: the counter in question * @member: the field to work with (see RES_xxx below) @@ -53,6 +54,8 @@ struct res_counter {*/ u64 res_counter_read_u64 (struct res_counter *counter,int member); +void res_counter_write_u64 (struct res_counter *counter,int member, +unsigned long long val); ssize_t res_counter_read(struct res_counter *counter, int member, const char __user *buf, size_t nbytes, loff_t *pos,kernel/res_counter.c +9
-0@@ -97,6 +97,15 @@ u64 res_counter_read_u64(struct res_counter *counter, int member)return *res_counter_member (counter, member); } +void res_counter_write_u64 (struct res_counter *counter,int member, +unsigned long long val) +{ +unsigned long long *tmp; + + tmp =res_counter_member (counter, member); + *tmp = val; +} +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))Signature · 7 lines
1.5.4.rc3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
Quoted 7 lines · KAMEZAWA Hiroyuki
Quoted 2 lines · On Tue, 11 Mar 2008 19:08:39 +0900 Li Zefan <[email protected]> wrote:
This function can be used to assign the value of a resource counter member.
Why don't you make this function to do the same work as
res_counter_write()?
You mean to deal with write strategy? We don't need that complexity. If it does the same work as res_counter_write(), it's just a redundant function. ;)
But I forgot to take res_counter->lock ...
Quoted 69 lines
Thanks,
-KameQuoted 62 lines
Signed-off-by Li Zefan <[email protected]>--- include/linux/res_counter.h | 9 ++++++--- kernel/res_counter.c | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-)include/linux/res_counter.h +6
-3@@ -41,9 +41,10 @@ struct res_counter {/** * 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 +* res_counter_read_64/_write_u64 - returns/assigns the value of the +* specified member +* res_counter_read/_write - puts/gets the specified fields from the +* res_counter struct to/from the user * * @counter: the counter in question * @member: the field to work with (see RES_xxx below) @@ -53,6 +54,8 @@ struct res_counter {*/ u64 res_counter_read_u64 (struct res_counter *counter,int member); +void res_counter_write_u64 (struct res_counter *counter,int member, +unsigned long long val); ssize_t res_counter_read(struct res_counter *counter, int member, const char __user *buf, size_t nbytes, loff_t *pos,kernel/res_counter.c +9
-0@@ -97,6 +97,15 @@ u64 res_counter_read_u64(struct res_counter *counter, int member)return *res_counter_member (counter, member); } +void res_counter_write_u64 (struct res_counter *counter,int member, +unsigned long long val) +{ +unsigned long long *tmp; + + tmp =res_counter_member (counter, member); + *tmp = val; +} +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))Signature · 7 lines
1.5.4.rc3 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>