On Thu, Nov 13, 2014 at 2:55 PM, J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > On Thu, Nov 13, 2014 at 02:26:20PM -0500, Trond Myklebust wrote: >> On Thu, Nov 13, 2014 at 2:02 PM, J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: >> > On Thu, Nov 13, 2014 at 01:52:09PM -0500, Trond Myklebust wrote: >> >> On Thu, Nov 13, 2014 at 12:57 PM, Steve Dickson <SteveD@xxxxxxxxxx> wrote: >> >> > On 11/12/2014 05:42 PM, Trond Myklebust wrote: >> >> >>>> NFS v4.0, 4.1, and 4.2 are all part of the same module, though. Is there a way to analyze modules and determine what is compiled in? >> >> >>> > Maybe come up with some global bit field could be used? >> >> >>> > Each bit signifies a minor version is enabled... >> >> >>> > >> >> >> No. This means that mount.nfs now suddenly needs to know the names of >> >> >> the NFS modules and how to load them before it calls mount() just so >> >> >> that it knows which parameters to try. This is a rathole we don't want >> >> >> to explore... >> >> > I don't think mount.nfs needs to know any names... Just >> >> > a file /proc/fs/nfs/mount that tells mount.nfs where >> >> > to start the negotiation.... >> >> > >> >> >> >> The kernel does not have that information until the NFSv4 module is loaded. >> > >> > I still don't get it. All it needs to know is an upper bound--that >> > could be a single compile-time constant. Is there any reason not to >> > build that number into the main nfs module? >> > >> >> Firstly, the main nfs module isn't preloaded either. > > That doesn't sound like a big deal. > >> Secondly, that's a layering violation. The main nfs module has no >> business knowing anything about the sub-modules other than how to load >> them when needed. If I want to recompile my NFSv4 module to add >> NFSv4.2 support, then I shouldn't have to recompile the entire >> contents of my nfs directory. > > You don't have to, you just have to mount with -oversion=4.2 in that > case. > > The compile-time constant here is just a default starting point for > negotation. > > As long as there's no stable kernel API, and end users don't routinely > load modules from the future, the nfs module seems like a reasonable > enough place to store the default minorversion. > It is reasonable if and only if your process can load modules and read procfs, neither of which are guaranteed in all situations where we may want to use mount.nfs. IOW: no... -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@xxxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html