mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
cgroup: replace cftype->write_string() with cftype->write()
Convert all cftype->write_string() users to the new cftype->write() which maps directly to kernfs write operation and has full access to kernfs and cgroup contexts. The conversions are mostly mechanical. * @css and @cft are accessed using of_css() and of_cft() accessors respectively instead of being specified as arguments. * Should return @nbytes on success instead of 0. * @buf is not trimmed automatically. Trim if necessary. Note that blkcg and netprio don't need this as the parsers already handle whitespaces. cftype->write_string() has no user left after the conversions and removed. While at it, remove unnecessary local variable @p in cgroup_subtree_control_write() and stale comment about CGROUP_LOCAL_BUFFER_SIZE in cgroup_freezer.c. This patch doesn't introduce any visible behavior changes. v2: netprio was missing from conversion. Converted. Signed-off-by: Tejun Heo <[email protected]> Acked-by: Aristeu Rozanski <[email protected]> Acked-by: Vivek Goyal <[email protected]> Acked-by: Li Zefan <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Neil Horman <[email protected]> Cc: "David S. Miller" <[email protected]>
This commit is contained in:
parent
b41686401e
commit
451af504df
11 changed files with 124 additions and 125 deletions
|
|
@ -1346,10 +1346,10 @@ static int tg_print_conf_uint(struct seq_file *sf, void *v)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int tg_set_conf(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
const char *buf, bool is_u64)
|
||||
static ssize_t tg_set_conf(struct kernfs_open_file *of,
|
||||
char *buf, size_t nbytes, loff_t off, bool is_u64)
|
||||
{
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
struct blkcg *blkcg = css_to_blkcg(of_css(of));
|
||||
struct blkg_conf_ctx ctx;
|
||||
struct throtl_grp *tg;
|
||||
struct throtl_service_queue *sq;
|
||||
|
|
@ -1368,9 +1368,9 @@ static int tg_set_conf(struct cgroup_subsys_state *css, struct cftype *cft,
|
|||
ctx.v = -1;
|
||||
|
||||
if (is_u64)
|
||||
*(u64 *)((void *)tg + cft->private) = ctx.v;
|
||||
*(u64 *)((void *)tg + of_cft(of)->private) = ctx.v;
|
||||
else
|
||||
*(unsigned int *)((void *)tg + cft->private) = ctx.v;
|
||||
*(unsigned int *)((void *)tg + of_cft(of)->private) = ctx.v;
|
||||
|
||||
throtl_log(&tg->service_queue,
|
||||
"limit change rbps=%llu wbps=%llu riops=%u wiops=%u",
|
||||
|
|
@ -1404,19 +1404,19 @@ static int tg_set_conf(struct cgroup_subsys_state *css, struct cftype *cft,
|
|||
}
|
||||
|
||||
blkg_conf_finish(&ctx);
|
||||
return 0;
|
||||
return nbytes;
|
||||
}
|
||||
|
||||
static int tg_set_conf_u64(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
char *buf)
|
||||
static ssize_t tg_set_conf_u64(struct kernfs_open_file *of,
|
||||
char *buf, size_t nbytes, loff_t off)
|
||||
{
|
||||
return tg_set_conf(css, cft, buf, true);
|
||||
return tg_set_conf(of, buf, nbytes, off, true);
|
||||
}
|
||||
|
||||
static int tg_set_conf_uint(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
char *buf)
|
||||
static ssize_t tg_set_conf_uint(struct kernfs_open_file *of,
|
||||
char *buf, size_t nbytes, loff_t off)
|
||||
{
|
||||
return tg_set_conf(css, cft, buf, false);
|
||||
return tg_set_conf(of, buf, nbytes, off, false);
|
||||
}
|
||||
|
||||
static struct cftype throtl_files[] = {
|
||||
|
|
@ -1424,25 +1424,25 @@ static struct cftype throtl_files[] = {
|
|||
.name = "throttle.read_bps_device",
|
||||
.private = offsetof(struct throtl_grp, bps[READ]),
|
||||
.seq_show = tg_print_conf_u64,
|
||||
.write_string = tg_set_conf_u64,
|
||||
.write = tg_set_conf_u64,
|
||||
},
|
||||
{
|
||||
.name = "throttle.write_bps_device",
|
||||
.private = offsetof(struct throtl_grp, bps[WRITE]),
|
||||
.seq_show = tg_print_conf_u64,
|
||||
.write_string = tg_set_conf_u64,
|
||||
.write = tg_set_conf_u64,
|
||||
},
|
||||
{
|
||||
.name = "throttle.read_iops_device",
|
||||
.private = offsetof(struct throtl_grp, iops[READ]),
|
||||
.seq_show = tg_print_conf_uint,
|
||||
.write_string = tg_set_conf_uint,
|
||||
.write = tg_set_conf_uint,
|
||||
},
|
||||
{
|
||||
.name = "throttle.write_iops_device",
|
||||
.private = offsetof(struct throtl_grp, iops[WRITE]),
|
||||
.seq_show = tg_print_conf_uint,
|
||||
.write_string = tg_set_conf_uint,
|
||||
.write = tg_set_conf_uint,
|
||||
},
|
||||
{
|
||||
.name = "throttle.io_service_bytes",
|
||||
|
|
|
|||
Loading…
Reference in a new issue