[Cluster-devel] Re: [PATCH] gfs2: better code for translating characters
Steven Whitehouse
swhiteho at redhat.com
Tue Aug 14 10:25:28 UTC 2007
Hi,
On Mon, 2007-08-13 at 17:19 +0800, rae l wrote:
> On 8/13/07, H. Peter Anvin <hpa at zytor.com> wrote:
> > You seem to have confused modern compiled C with an old BASIC interpreter.
> >
> > Consider the code in point:
> >
> > - while ((table = strchr(sdp->sd_table_name, '/')))
> > + table = sdp->sd_table_name;
> > + while ((table = strchr(table, '/')))
> > *table = '_';
> Sorry, I just mean for call to strchr, things are different,
> especially for multiple '/' chars appeared.
>
> The while loop's purpose is to translate all '/' chars appeared in
> sdp->sd_table_name to '_' chars, consider the string:
> 'a////aa/a/a/...'
> if strchr called with sdp->sd_table_name, every strchr would begun at
> index 0 of the string, but if called with table, every strchr begun at
> the last searched position.
>
> So I wonder the common case is no existence of '/', or just one or
> multiple existence? Things are different for these cases.
The common case is for there to be a few '/' characters since the table
name is often the name of the device upon which the fs is mounted,
e.g. /dev/sda so it general its not going to be a long string or have
many '/' in it,
Steve.
More information about the Cluster-devel
mailing list