[Linux-cachefs] [PATCH v3] cachefiles: do not yet allow on idmapped mounts
Christian Brauner
christian.brauner at ubuntu.com
Wed Mar 24 07:42:11 UTC 2021
On Fri, Mar 19, 2021 at 12:41:47PM +0100, Christian Brauner wrote:
> Based on discussions (e.g. in [1]) my understanding of cachefiles and
> the cachefiles userspace daemon is that it creates a cache on a local
> filesystem (e.g. ext4, xfs etc.) for a network filesystem. The way this
> is done is by writing "bind" to /dev/cachefiles and pointing it to the
> directory to use as the cache.
> Currently this directory can technically also be an idmapped mount but
> cachefiles aren't yet fully aware of such mounts and thus don't take the
> idmapping into account when creating cache entries. This could leave
> users confused as the ownership of the files wouldn't match to what they
> expressed in the idmapping. Block cache files on idmapped mounts until
> the fscache rework is done and we have ported it to support idmapped
> mounts.
>
> [1]: https://lore.kernel.org/lkml/20210303161528.n3jzg66ou2wa43qb@wittgenstein
> Cc: David Howells <dhowells at redhat.com>
> Cc: linux-cachefs at redhat.com
> Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
> ---
Hey David,
Are you happy with this now, and could I possibly get your Ack on this,
please? And also, are you routing this to Linus (preferably before v5.12
is out) or do you want me to take it?
Christian
> /* v2 */
> - Christian Brauner <christian.brauner at ubuntu.com>:
> - Ensure that "root" is initialized when cleaning up.
>
> /* v3 */
> - David Howells <dhowells at redhat.com>:
> - Reformulate commit message to avoid paragraphs with duplicated
> content.
> - Add a pr_warn() when cachefiles are supposed to be created on
> idmapped mounts.
> ---
> fs/cachefiles/bind.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
> index dfb14dbddf51..38bb7764b454 100644
> --- a/fs/cachefiles/bind.c
> +++ b/fs/cachefiles/bind.c
> @@ -118,6 +118,12 @@ static int cachefiles_daemon_add_cache(struct cachefiles_cache *cache)
> cache->mnt = path.mnt;
> root = path.dentry;
>
> + ret = -EINVAL;
> + if (mnt_user_ns(path.mnt) != &init_user_ns) {
> + pr_warn("File cache on idmapped mounts not supported");
> + goto error_unsupported;
> + }
> +
> /* check parameters */
> ret = -EOPNOTSUPP;
> if (d_is_negative(root) ||
>
> base-commit: 1e28eed17697bcf343c6743f0028cc3b5dd88bf0
> --
> 2.27.0
>
More information about the Linux-cachefs
mailing list