2007-10-24 17:36:47

by Paul Jackson

[permalink] [raw]
Subject: [RFC] cgroup simplify space stripping

From: Paul Jackson <[email protected]>

Simplify the space stripping code in cgroup file write.

Signed-off-by: Paul Jackson <[email protected]>

---

This patch applies after both:
Adrian Bunk's: [2.6 patch] kernel/cgroup.c: remove dead code
pj's: [PATCH] cgroup brace coding style fix

kernel/cgroup.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)

--- 2.6.23-mm1.orig/kernel/cgroup.c 2007-10-24 10:03:11.847801501 -0700
+++ 2.6.23-mm1/kernel/cgroup.c 2007-10-24 10:29:08.355032464 -0700
@@ -1327,6 +1327,7 @@ static ssize_t cgroup_common_file_write(
goto out1;
}
buffer[nbytes] = 0; /* nul-terminate */
+ strstrip(buffer); /* strip -just- trailing whitespace */

mutex_lock(&cgroup_mutex);

@@ -1347,19 +1348,9 @@ static ssize_t cgroup_common_file_write(
clear_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
break;
case FILE_RELEASE_AGENT:
- {
- struct cgroupfs_root *root = cgrp->root;
- /* Strip trailing newline */
- if (nbytes && (buffer[nbytes-1] == '\n'))
- buffer[nbytes-1] = 0;
- /* We never write anything other than '\0'
- * into the last char of release_agent_path,
- * so it always remains a NUL-terminated
- * string */
- strncpy(root->release_agent_path, buffer, nbytes);
- root->release_agent_path[nbytes] = 0;
+ BUG_ON(sizeof(cgrp->root->release_agent_path) < PATH_MAX);
+ strcpy(cgrp->root->release_agent_path, buffer);
break;
- }
default:
retval = -EINVAL;
goto out2;

--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.650.933.1373


2007-10-26 01:14:37

by Paul Menage

[permalink] [raw]
Subject: Re: [RFC] cgroup simplify space stripping

On 10/24/07, Paul Jackson <[email protected]> wrote:
> From: Paul Jackson <[email protected]>
>
> Simplify the space stripping code in cgroup file write.
>
> Signed-off-by: Paul Jackson <[email protected]>

Acked-by: Paul Menage <[email protected]>

>
> ---
>
> This patch applies after both:
> Adrian Bunk's: [2.6 patch] kernel/cgroup.c: remove dead code
> pj's: [PATCH] cgroup brace coding style fix
>
> kernel/cgroup.c | 15 +++------------
> 1 file changed, 3 insertions(+), 12 deletions(-)
>
> --- 2.6.23-mm1.orig/kernel/cgroup.c 2007-10-24 10:03:11.847801501 -0700
> +++ 2.6.23-mm1/kernel/cgroup.c 2007-10-24 10:29:08.355032464 -0700
> @@ -1327,6 +1327,7 @@ static ssize_t cgroup_common_file_write(
> goto out1;
> }
> buffer[nbytes] = 0; /* nul-terminate */
> + strstrip(buffer); /* strip -just- trailing whitespace */
>
> mutex_lock(&cgroup_mutex);
>
> @@ -1347,19 +1348,9 @@ static ssize_t cgroup_common_file_write(
> clear_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
> break;
> case FILE_RELEASE_AGENT:
> - {
> - struct cgroupfs_root *root = cgrp->root;
> - /* Strip trailing newline */
> - if (nbytes && (buffer[nbytes-1] == '\n'))
> - buffer[nbytes-1] = 0;
> - /* We never write anything other than '\0'
> - * into the last char of release_agent_path,
> - * so it always remains a NUL-terminated
> - * string */
> - strncpy(root->release_agent_path, buffer, nbytes);
> - root->release_agent_path[nbytes] = 0;
> + BUG_ON(sizeof(cgrp->root->release_agent_path) < PATH_MAX);
> + strcpy(cgrp->root->release_agent_path, buffer);
> break;
> - }
> default:
> retval = -EINVAL;
> goto out2;
>
> --
> I won't rest till it's the best ...
> Programmer, Linux Scalability
> Paul Jackson <[email protected]> 1.650.933.1373
>

2007-10-27 05:51:20

by Jason Uhlenkott

[permalink] [raw]
Subject: Re: [RFC] cgroup simplify space stripping

On Wed, Oct 24, 2007 at 10:36:21 -0700, Paul Jackson wrote:
> From: Paul Jackson <[email protected]>
>
> Simplify the space stripping code in cgroup file write.
>
> Signed-off-by: Paul Jackson <[email protected]>
>
> ---
>
> This patch applies after both:
> Adrian Bunk's: [2.6 patch] kernel/cgroup.c: remove dead code
> pj's: [PATCH] cgroup brace coding style fix
>
> kernel/cgroup.c | 15 +++------------
> 1 file changed, 3 insertions(+), 12 deletions(-)
>
> --- 2.6.23-mm1.orig/kernel/cgroup.c 2007-10-24 10:03:11.847801501 -0700
> +++ 2.6.23-mm1/kernel/cgroup.c 2007-10-24 10:29:08.355032464 -0700
> @@ -1327,6 +1327,7 @@ static ssize_t cgroup_common_file_write(
> goto out1;
> }
> buffer[nbytes] = 0; /* nul-terminate */
> + strstrip(buffer); /* strip -just- trailing whitespace */
>
> mutex_lock(&cgroup_mutex);
>
> @@ -1347,19 +1348,9 @@ static ssize_t cgroup_common_file_write(
> clear_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
> break;
> case FILE_RELEASE_AGENT:
> - {
> - struct cgroupfs_root *root = cgrp->root;
> - /* Strip trailing newline */
> - if (nbytes && (buffer[nbytes-1] == '\n'))
> - buffer[nbytes-1] = 0;
> - /* We never write anything other than '\0'
> - * into the last char of release_agent_path,
> - * so it always remains a NUL-terminated
> - * string */
> - strncpy(root->release_agent_path, buffer, nbytes);
> - root->release_agent_path[nbytes] = 0;
> + BUG_ON(sizeof(cgrp->root->release_agent_path) < PATH_MAX);

Could be BUILD_BUG_ON, even.


> + strcpy(cgrp->root->release_agent_path, buffer);
> break;
> - }
> default:
> retval = -EINVAL;
> goto out2;

2007-10-27 06:00:26

by Jason Uhlenkott

[permalink] [raw]
Subject: Re: [RFC] cgroup simplify space stripping

On Fri, Oct 26, 2007 at 22:50:45 -0700, Jason Uhlenkott wrote:
> Could be BUILD_BUG_ON, even.

Oh, never mind -- I see you've reached that conclusion in the other
thread.