Re: [PATCH 1/3] Remove trailing NULs from network bonding sysfsinterface.

From: Randy Dunlap
Date: Tue Nov 27 2007 - 22:50:33 EST


On Wed, 28 Nov 2007 01:49:54 +0100 =?utf-8?q?Ferenc_W=C3=A1gner?= wrote:

> Also remove trailing spaces from multivalued files.
>
> This fixes output like for example:
>
> $ od -c /sys/class/net/bond0/bonding/slaves
> 0000000 e t h - l e f t e t h - r i g
> 0000020 h t \n \0
> 0000025
>
> It mostly entails deleting '+1'-s after sprintf() calls: the return value
> of sprintf is the number of characters printed, without the closing NUL,
> ie. exactly what the sysfs interface requires. The three multivalue
> cases are different, because they also have to swallow back a trailing
> space.
>
> Signed-off-by: Ferenc Wágner <wferi@xxxxxxx>
> ---
> drivers/net/bonding/bond_sysfs.c | 66 +++++++++++++++++--------------------
> 1 files changed, 30 insertions(+), 36 deletions(-)
>
> diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
> index b29330d..a3f1b4a 100644
> --- a/drivers/net/bonding/bond_sysfs.c
> +++ b/drivers/net/bonding/bond_sysfs.c
> @@ -86,14 +86,13 @@ static ssize_t bonding_show_bonds(struct class *cls, char *buffer)
> /* not enough space for another interface name */
> if ((PAGE_SIZE - res) > 10)
> res = PAGE_SIZE - 10;
> - res += sprintf(buffer + res, "++more++");
> + res += sprintf(buffer + res, "++more++ ");
> break;
> }
> res += sprintf(buffer + res, "%s ",
> bond->dev->name);
> }
> - res += sprintf(buffer + res, "\n");
> - res++;
> + if (res) buffer[res-1] = '\n'; /* eat the leftover space */
> up_read(&(bonding_rwsem));
> return res;
> }
> @@ -235,14 +234,13 @@ static ssize_t bonding_show_slaves(struct device *d,
> /* not enough space for another interface name */
> if ((PAGE_SIZE - res) > 10)
> res = PAGE_SIZE - 10;
> - res += sprintf(buf + res, "++more++");
> + res += sprintf(buf + res, "++more++ ");
> break;
> }
> res += sprintf(buf + res, "%s ", slave->dev->name);
> }
> read_unlock(&bond->lock);
> - res += sprintf(buf + res, "\n");
> - res++;
> + if (res) buf[res-1] = '\n'; /* eat the leftover space */
> return res;
> }
>
> @@ -711,10 +709,7 @@ static ssize_t bonding_show_arp_targets(struct device *d,
> res += sprintf(buf + res, "%u.%u.%u.%u ",
> NIPQUAD(bond->params.arp_targets[i]));
> }
> - if (res)
> - res--; /* eat the leftover space */
> - res += sprintf(buf + res, "\n");
> - res++;
> + if (res) buf[res-1] = '\n'; /* eat the leftover space */
> return res;
> }

Hi,

Patches 1 & 3 use

if (res) statement;

but the preferred form is

if (res)
statement;

Even if this style was already used in the source file, it should
be cleaned up.

Thanks,
---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/