Message ID | 20211020082956.8359-1-lmb@cloudflare.com (mailing list archive) |
---|---|
Headers | show |
Series | Support RENAME_EXCHANGE on bpffs | expand |
On Wed, Oct 20, 2021 at 09:29:54AM +0100, Lorenz Bauer wrote: > 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. That is a cool idea. The selftest doesn't exercise all of this logic. It's only testing that RENAME_EXCHANGE works on directories within bpffs. Do we need a test for other types of paths?