On 5/19/14, 12:04 PM, Anand Jain wrote:
> From: Anand Jain <anand.j...@oracle.com>
> 
> generally if you use
>   echo "test" > /sys/fs/btrfs/<fsid>/label
> it would introduce return char at the end and it can not
> be part of the label. The correct command is
>   echo -n "test" > /sys/fs/btrfs/<fsid>/label
> 
> This patch will check for this user error

Wouldn't it be a lot better to just strip the "\n" if it
exists?

> Signed-off-by: Anand Jain <anand.j...@oracle.com>
> ---
>  fs/btrfs/sysfs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
> index c5eb214..63c2907 100644
> --- a/fs/btrfs/sysfs.c
> +++ b/fs/btrfs/sysfs.c
> @@ -374,7 +374,7 @@ static ssize_t btrfs_label_store(struct kobject *kobj,
>       struct btrfs_root *root = fs_info->fs_root;
>       int ret;
>  
> -     if (len >= BTRFS_LABEL_SIZE) {
> +     if (len >= BTRFS_LABEL_SIZE || strchr(buf, '\n')) {
>               pr_err("BTRFS: unable to set label with more than %d bytes\n",
>                      BTRFS_LABEL_SIZE - 1);

so if I do:

# echo "mylabel" > /sys/fs/btrfs/<fsid>/label

I'll get:

BTRFS: unable to set label with more than 255 bytes"

which would be pretty confusing, IMHO, given the short
label I tried to create.

Just strip out the \n ...

-Eric

>               return -EINVAL;
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to