I won't apply this version, please send v6 with the changes below.
On Tue, 10 Nov 2026 18:26:52 +0100, Vladimir Riabchun
<[email protected]> wrote:
> Modify ovl_override_creds so that it returns both old cred and old VE.
> This will also protect us from future rebase issues - all new users of
> old_cred and ovl_override_creds will fail with compilation error.
- Item 8 of the cover letter reply: add a Fixes tag for ec01a90d0ef9
("ovl: replace capable by ve_capable for indexing feature"), limit
this claim to ovl_override_creds() callers, say why cross-CT use
must fail, and fix "swich" and "Stroing".
ec01a90d0ef9 turned capable() into ve_capable() in
ovl_can_decode_fh() and ovl_decode_real_fh(). That made the result
depend on the VE, which is the bug.
The compile error catches new ovl_override_creds() callers only.
ovl_creds() users, such as backing_file_ctx.cred in read/write/splice/
mmap, still switch creds without the VE.
> We don't allow cross-CT overlayfs usages, it is broken and reported
> as -EINVAL. But we want to allow usage of host-owned overlayfs by CT.
"It is broken" does not say why the error is needed. If a CT-B task
kept its own VE on a CT-A overlay, CT-A creds would be checked
against CT-B's user namespace. That fails at run time, while the
mount-time check passed, and it is the same oops again. Please say
that in the message, since Pavel's "just skip the override" looks
like the simpler choice otherwise.
> + /*
> + * We want to allow passing host overlayfs to CT.
> + * It is fine to keep CT ve - host creds should work.
> + * Cross-CT mounts are forbidden.
> + */
> + if (IS_ERR(desc->ve) && PTR_ERR(desc->ve) != -EPERM)
> + return PTR_ERR(desc->ve);
- Item 1 of the cover letter reply: test only IS_ERR() here and in
ovl_revert_creds(), once override_ve() returns old_ve for the VE0
case. Fix the comment: mounting works, using the overlay from
another CT is refused.
The user-visible errno also changes then: stat, open and lookup on a
foreign CT's overlay return EPERM rather than EINVAL. EINVAL there
reads as a bad argument from the caller.
--
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel