[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211021151528.116818-1-lmb@cloudflare.com>
Date: Thu, 21 Oct 2021 16:15:25 +0100
From: Lorenz Bauer <lmb@...udflare.com>
To: Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Andrii Nakryiko <andrii@...nel.org>
Cc: kernel-team@...udflare.com, Lorenz Bauer <lmb@...udflare.com>,
netdev@...r.kernel.org, bpf@...r.kernel.org
Subject: [PATCH bpf-next v2 0/3] Support RENAME_EXCHANGE on bpffs
Add support for renameat2(RENAME_EXCHANGE) on bpffs. This is useful
for atomic upgrades of our sk_lookup control plane.
* Create a temporary directory on bpffs
* Migrate maps and pin them into temporary directory
* Load new sk_lookup BPF, attach it and pin the link into temp dir
* renameat2(temp dir, state dir, RENAME_EXCHANGE)
* rmdir temp dir
Due to the sk_lookup semantics this means we can never end up in a
situation where an upgrade breaks the existing control plane.
v2:
- Test exchanging a map and a directory (Alexei)
- Use ASSERT macros (Andrii)
Lorenz Bauer (3):
libfs: support RENAME_EXCHANGE in simple_rename()
selftests: bpf: convert test_bpffs to ASSERT macros
selftests: bpf: test RENAME_EXCHANGE and RENAME_NOREPLACE on bpffs
fs/libfs.c | 6 +-
.../selftests/bpf/prog_tests/test_bpffs.c | 85 ++++++++++++++++---
2 files changed, 79 insertions(+), 12 deletions(-)
--
2.32.0
Powered by blists - more mailing lists