Re: [PATCH] nfsmount.conf: New variables that explicitly set default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Oct 12, 2009, at 5:24 AM, Steve Dickson wrote:

On 10/09/2009 08:38 PM, Chuck Lever wrote:

On Oct 9, 2009, at 7:16 PM, Steve Dickson wrote:

I worry that this kind of thing will be difficult to support when we
move version and transport negotiation into the kernel.
There was a lot of positive feed back on being able to control
things like defining the default version and transport from user
level configuration files. But I do understand your point, so maybe
its not a good idea to move negotiation down to the kernel. I think its
clear that is much easier to support and change these types of
negotiations from user level...

You'd have to take that up with Trond. Our goal for several years has
been to handle as much of this as possible in the kernel.

Using a config file in this particular way could make it tougher down
the road for a kernel implementation. There might be other mechanisms for accomplishing this kind of tuning that might be easier to deal with
in the kernel.  I'd just like us to think carefully about the user
interface and API choices we are making right now so we don't paint
ourselves into a corner.
Regardless of how much is moved down into the kernel, there
will always be a mount command that will supply information to
the kernel via the mount system call. All this config file
does is provide another way (other than the command line) to supply
mount with that information. A configuration file [or command line]
feed the API, they don't define it...


All you have to do is this: in nfs_validate_options(), after we've
looked at the user option string to see what version is specified,
check: if mi->version is still 0, then look in the config file to see
what kind of negotiation behavior is desired.  Done.
This does not jive with how the config parsing code works. The code
appends to the current options (if they don't already exists), well
before nfs_validate_options() is called..

Right, don't do this particular trick by appending additional mount
options. Setting mount's "default version" is not something you want to do via existing mount options, for exactly the reasons you stated in the
patch description.  Likewise with a default protocol.
Well that is *exactly* what people want, have complete control
of their environment, at least that is the feed back I've gotten...

I realize you are philosophically opposed  to having a configure
file and allowing people to define defaults. You have made that
clear (at least that's my interpretation) from our previous discussions.

You are reading way too much into this. I'm not at all trying to stop work on the config file. If I were, why would I have given you clean patches to support vers=4 and version negotiation? Read my lips: I'm over it, I've been over it for a while, and I'm now trying to help you get it right.

There is no hidden agenda here. My interest is a useful and clean implementation that is easy to maintain, and fits in with our other plans for NFS mounting. And besides, what possible political advantage would there be for me to stymie your project?

I might make a similar assumption about your arguments: you are philosophically opposed to doing NFS mount processing in the kernel (and you've said as much, recently, on this mailing list). Now you are trying your damndest to keep the remaining bits in user space. You are fighting an uphill battle, I have to say, since pretty much every in-kernel file system does its mount option processing in the kernel these days.

So, this is not _my_ idea. It's the way Linux file systems are implemented now. Thus, we should try to make the mount.nfs config file conform to the Linux universe, and not the other way around.

I would like to stay focus on the technical merit of this patch.
Meaning are there any holes in that will cause the mount to drop
core; is there anything I'm missing that will cause mounts to
unnecessarily fail. Things of that nature...

I am directly addressing the technical merits of your patch: doing it your way adds unneeded complexity, breaks aspects of the current implementation, goes against the general architecture of mounting a Linux file system, will make future work in this area more difficult, *and* it will likely prevent us from moving this work into the kernel.

I'm not opposed to specifying defaults in the config file, but please don't do it this way. I have more of a problem with the specific implementation you've proposed rather than the idea of setting defaults.

We need to approach this with the idea that version and transport negotiation will be handled in the kernel, going forward. The config file is a user interface that will need to be designed with the Linux mount(2) API in mind.

We have a handful of mount options that adjust mount.nfs's behavior
rather than specifying the behavior of the mountpoint: bg, fg, and
retry= being the most obvious examples.  Maybe we want a new mount
option like defaultvers or defaultproto, which would fall into the same
category.  But the semantics of the existing vers= and proto= options
just don't support this kind of thing, and I think we should be
extremely careful about abusing them like this.
More mount options??? No... that is not the answer... IMHO..

I can't see another way of providing a default version and transport to the kernel.

Besides, why would you go to the trouble of adding a global, site, and server specific section in the config file, and then limit all of these to one default version and protocol?

Instead, you could add a different "defaultvers" setting to each section, _and_ have one on a specific mount point in /etc/fstab or in an automounter map. Such a default would then be accessible to every level of mount processing, and would provide the maximum flexibility to users. What's not to like about that?

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
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

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux