Re: [PATCH] btrfs: Replace memcpy + NUL termination in _btrfs_printk
From: David Sterba
Date: Wed Dec 03 2025 - 08:46:08 EST
On Sun, Nov 30, 2025 at 11:06:40AM +0000, david laight wrote:
> On Sun, 30 Nov 2025 01:55:17 +0100
> Thorsten Blum <thorsten.blum@xxxxxxxxx> wrote:
>
> > Use strscpy() to copy the NUL-terminated source string 'fmt' to the
> > destination buffer 'lvl' instead of using memcpy() followed by a manual
> > NUL termination. No functional changes.
>
> Why?
> The code has just got the length of part of the format string, it wants
> a copy of it with a '\0' terminator.
> So memcpy() is correct and strscpy() just expensive.
> The code is actually strange (and strangely written), but 'size' is always 2.
>
> One might question why btrfs has to invent its own 'printk' scheme...
The first code of the printk helper was added in 2012 as 4da35113426d
("btrfs: add varargs to btrfs_error") and since then it evolved a lot
and I'm not sure we still need it.
Own helpers for messages insert the filesystem identification in front
of the message. There's per-level ratelimit which needs the parsing
added in commit 35f4e5e6f198 ("btrfs: Add ratelimit to btrfs printing").
This can be possibly removed as we can ratelimit specific messages if
they're known to be noisy.