[PATCH v3 0/2] fscontext: do not consume log entries when returning -EMSGSIZE

Aleksa Sarai posted 2 patches 1 month, 4 weeks ago
fs/fsopen.c                                    |  54 +++++-----
tools/testing/selftests/filesystems/.gitignore |   1 +
tools/testing/selftests/filesystems/Makefile   |   2 +-
tools/testing/selftests/filesystems/fclog.c    | 130 +++++++++++++++++++++++++
4 files changed, 162 insertions(+), 25 deletions(-)
[PATCH v3 0/2] fscontext: do not consume log entries when returning -EMSGSIZE
Posted by Aleksa Sarai 1 month, 4 weeks ago
Userspace generally expects APIs that return -EMSGSIZE to allow for them
to adjust their buffer size and retry the operation. However, the
fscontext log would previously clear the message even in the -EMSGSIZE
case.

Given that it is very cheap for us to check whether the buffer is too
small before we remove the message from the ring buffer, let's just do
that instead. While we're at it, refactor some fscontext_read() into a
separate helper to make the ring buffer logic a bit easier to read.

Fixes: 007ec26cdc9f ("vfs: Implement logging through fs_context")
Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
---
Changes in v3:
- selftests: use EXPECT_STREQ()
- v2: <https://lore.kernel.org/r/20250806-fscontext-log-cleanups-v2-0-88e9d34d142f@cyphar.com>

Changes in v2:
- Refactor message fetching to fetch_message_locked() which returns
  ERR_PTR() in error cases. [Al Viro]
- v1: <https://lore.kernel.org/r/20250806-fscontext-log-cleanups-v1-0-880597d42a5a@cyphar.com>

---
Aleksa Sarai (2):
      fscontext: do not consume log entries when returning -EMSGSIZE
      selftests/filesystems: add basic fscontext log tests

 fs/fsopen.c                                    |  54 +++++-----
 tools/testing/selftests/filesystems/.gitignore |   1 +
 tools/testing/selftests/filesystems/Makefile   |   2 +-
 tools/testing/selftests/filesystems/fclog.c    | 130 +++++++++++++++++++++++++
 4 files changed, 162 insertions(+), 25 deletions(-)
---
base-commit: 66639db858112bf6b0f76677f7517643d586e575
change-id: 20250806-fscontext-log-cleanups-50f0143674ae

Best regards,
-- 
Aleksa Sarai <cyphar@cyphar.com>
Re: [PATCH v3 0/2] fscontext: do not consume log entries when returning -EMSGSIZE
Posted by Christian Brauner 1 month, 3 weeks ago
On Thu, 07 Aug 2025 03:55:22 +1000, Aleksa Sarai wrote:
> Userspace generally expects APIs that return -EMSGSIZE to allow for them
> to adjust their buffer size and retry the operation. However, the
> fscontext log would previously clear the message even in the -EMSGSIZE
> case.
> 
> Given that it is very cheap for us to check whether the buffer is too
> small before we remove the message from the ring buffer, let's just do
> that instead. While we're at it, refactor some fscontext_read() into a
> separate helper to make the ring buffer logic a bit easier to read.
> 
> [...]

Applied to the vfs-6.18.mount branch of the vfs/vfs.git tree.
Patches in the vfs-6.18.mount branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-6.18.mount

[1/2] fscontext: do not consume log entries when returning -EMSGSIZE
      https://git.kernel.org/vfs/vfs/c/b78c4328c498
[2/2] selftests/filesystems: add basic fscontext log tests
      https://git.kernel.org/vfs/vfs/c/d70b6ceebd29