Re: [PATCH 06/14] VFS: Introduce a superblock configuration context

From: Al Viro
Date: Thu May 11 2017 - 03:24:47 EST


On Wed, May 10, 2017 at 05:19:19PM +0100, David Howells wrote:
> + (*) struct mnt_namespace *mnt_ns
> +
> + This is a subset of the namespaces in use by the invoking process. This
> + retains a ref on each namespace. The subscribed namespaces may be
> + replaced by the filesystem to reflect other sources, such as the parent
> + mount superblock on an automount.

I don't think it's a good idea. No comments on userns stuff, but what's
the situation when you want it to play with the real namespace? Details,
please...

> + (*) int (*fill_super)(struct super_block *s, struct sb_config *sc);
> +
> + This is available to be used by things like mount_ns_mc() that are called
> + by ->mount() to transfer information/resources from the superblock configuration context to
> + the superblock.

Don't. This kind of stuff can bloody well be an explicit callback.
Methods of that kind are trouble - we had that sort of PITA quite a few
times, and it had always been a headache when we eventually had to kill them
off. Starting with ->read_inode(), if you remember that one...