Re: [RFC 0/28] Patches to pass vfsmount to LSM inode security hooks

From: Christoph Hellwig
Date: Wed Feb 07 2007 - 07:12:02 EST


On Wed, Feb 07, 2007 at 01:58:15AM -0800, Andreas Gruenbacher wrote:
> > It's not actually a pathname we care about, but a vfsmount + dentry
> > combo. That one means as much in nfsd as elsewhere. We want nfsd
> > to obey r/o or noatime mount flags if /export/foo is exported with them
> > but /foo not.
>
> This assumes that you can discover from the file handle which export it
> belongs to. And right, this can be done using the fsid export option. Okay,
> I'm now convinced that passing the vfsmounts from the svc_export to the vfs_
> helpers is good at least for *something*. I'll update the patches.

As I mentioned before I have a big patchset reworking this area, so please
wait a week or two for me two finish it instead of creating lots of rejects.

> > This doesn't matter. hardlinks are per definition on the same vfsmount.
>
> Hardlinks are per definition on the same filesystem. This doesn't mean that
> you can't have two filehandles for the same file but with different
> vfsmounts -- you can have the same file visible in multiple locations, each
> with their own vfsmount.

Sure, but that doesn't matter here. Exports are per-vfsmount, and
each export has the vfsmount stored in it. So we know which of the
vfsmount we want before we even resolve the dentry. And yes, if
I have /export/foo mounted with option but /foo now I want those
options to apply to the nfs export. Note that we actually have another
little bug in this area currently: if you export two different
patch that have the same underlying filesystems they actually do get
the same file handle unless using fsid=. We probably need to put
a check into svc_export_parse so that we don't export the same
device twice without using fsid=.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/