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