bcache: Strip endline when writing the label through sysfs
sysfs attributes with unusual characters have crappy failure modes in Squeeze (udev 164); later versions of udev are unaffected. This should make these characters more unusual. Signed-off-by: Gabriel de Perthuis <g2p.code@gmail.com> Signed-off-by: Kent Overstreet <kmo@daterainc.com> Cc: linux-stable <stable@vger.kernel.org> # >= v3.10 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6d9d21e35f
commit
aee6f1cfff
|
@ -223,8 +223,13 @@ STORE(__cached_dev)
|
|||
}
|
||||
|
||||
if (attr == &sysfs_label) {
|
||||
/* note: endlines are preserved */
|
||||
memcpy(dc->sb.label, buf, SB_LABEL_SIZE);
|
||||
if (size > SB_LABEL_SIZE)
|
||||
return -EINVAL;
|
||||
memcpy(dc->sb.label, buf, size);
|
||||
if (size < SB_LABEL_SIZE)
|
||||
dc->sb.label[size] = '\0';
|
||||
if (size && dc->sb.label[size - 1] == '\n')
|
||||
dc->sb.label[size - 1] = '\0';
|
||||
bch_write_bdev_super(dc, NULL);
|
||||
if (dc->disk.c) {
|
||||
memcpy(dc->disk.c->uuids[dc->disk.id].label,
|
||||
|
|
Loading…
Reference in New Issue