2007-08-13 03:01:49

by cheng renquan

[permalink] [raw]
Subject: [PATCH] gfs2: better code for translating characters

the original code could work, but I think this code could work better.

Signed-off-by: Denis Cheng <[email protected]>
---
fs/gfs2/ops_fstype.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index cf5aa50..b9a7759 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -145,7 +145,8 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
snprintf(sdp->sd_proto_name, GFS2_FSNAME_LEN, "%s", proto);
snprintf(sdp->sd_table_name, GFS2_FSNAME_LEN, "%s", table);

- while ((table = strchr(sdp->sd_table_name, '/')))
+ table = sdp->sd_table_name;
+ while ((table = strchr(table, '/')))
*table = '_';

out:
--
1.5.2.2


2007-08-13 03:08:37

by cheng renquan

[permalink] [raw]
Subject: Re: [PATCH] gfs2: better code for translating characters

On 8/13/07, Denis Cheng <[email protected]> wrote:
> the original code could work, but I think this code could work better.
>
> Signed-off-by: Denis Cheng <[email protected]>
> ---
> fs/gfs2/ops_fstype.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
> index cf5aa50..b9a7759 100644
> --- a/fs/gfs2/ops_fstype.c
> +++ b/fs/gfs2/ops_fstype.c
> @@ -145,7 +145,8 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
> snprintf(sdp->sd_proto_name, GFS2_FSNAME_LEN, "%s", proto);
> snprintf(sdp->sd_table_name, GFS2_FSNAME_LEN, "%s", table);
>
> - while ((table = strchr(sdp->sd_table_name, '/')))
> + table = sdp->sd_table_name;
> + while ((table = strchr(table, '/')))
> *table = '_';
Sorry, I don't know what the while loop really means, what's the
common case that slash character exists? if the '/' appears multiple,
the latter code would be better; however, if slash appears rarely, the
original would still be better.

>
> out:
> --
> 1.5.2.2
>
>


--
Denis Cheng
Linux Application Developer

"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.

2007-08-13 04:28:07

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH] gfs2: better code for translating characters

rae l wrote:
> On 8/13/07, Denis Cheng <[email protected]> wrote:
>> the original code could work, but I think this code could work better.
>>
>> Signed-off-by: Denis Cheng <[email protected]>
>> ---
>> fs/gfs2/ops_fstype.c | 3 ++-
>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
>> index cf5aa50..b9a7759 100644
>> --- a/fs/gfs2/ops_fstype.c
>> +++ b/fs/gfs2/ops_fstype.c
>> @@ -145,7 +145,8 @@ static int init_names(struct gfs2_sbd *sdp, int silent)
>> snprintf(sdp->sd_proto_name, GFS2_FSNAME_LEN, "%s", proto);
>> snprintf(sdp->sd_table_name, GFS2_FSNAME_LEN, "%s", table);
>>
>> - while ((table = strchr(sdp->sd_table_name, '/')))
>> + table = sdp->sd_table_name;
>> + while ((table = strchr(table, '/')))
>> *table = '_';
> Sorry, I don't know what the while loop really means, what's the
> common case that slash character exists? if the '/' appears multiple,
> the latter code would be better; however, if slash appears rarely, the
> original would still be better.
>

Only if the compiler is stupid.

-hpa