2008-04-11 20:14:41

by Peter Staubach

[permalink] [raw]
Subject: Re: [PATCH] NFS: implement option checking when remounting NFS filesystems

Trond Myklebust wrote:
> On Fri, 2008-04-11 at 15:19 -0400, Peter Staubach wrote:
>
>> Jeff Layton wrote:
>>
>>> When remounting an NFS or NFS4 filesystem, the new NFS options are not
>>> respected, yet the remount will still return success. This patch adds
>>> a remount_fs sb op for NFS that checks any new nfs mount options against
>>> the existing ones and fails the mount if any have changed.
>>>
>>> This is only implemented for string-based mount options since doing
>>> this with binary options isn't really feasible.
>>>
>> What about respecting the new options as makes sense and rejecting
>> those which absolutely can't be changed dynamically?
>>
>
> If we were to do this, then how should superblocks that are shared
> between multiple mountpoints behave?

Do you mean if those other mountpoints were mounted with explicit
options and this remount might affect those options?

Isn't the same problem that we potentially have today?

Thanx...

ps


2008-04-11 21:07:46

by Trond Myklebust

[permalink] [raw]
Subject: Re: [PATCH] NFS: implement option checking when remounting NFS filesystems


On Fri, 2008-04-11 at 16:14 -0400, Peter Staubach wrote:
> Trond Myklebust wrote:
> > On Fri, 2008-04-11 at 15:19 -0400, Peter Staubach wrote:
> >
> >> Jeff Layton wrote:
> >>
> >>> When remounting an NFS or NFS4 filesystem, the new NFS options are not
> >>> respected, yet the remount will still return success. This patch adds
> >>> a remount_fs sb op for NFS that checks any new nfs mount options against
> >>> the existing ones and fails the mount if any have changed.
> >>>
> >>> This is only implemented for string-based mount options since doing
> >>> this with binary options isn't really feasible.
> >>>
> >> What about respecting the new options as makes sense and rejecting
> >> those which absolutely can't be changed dynamically?
> >>
> >
> > If we were to do this, then how should superblocks that are shared
> > between multiple mountpoints behave?
>
> Do you mean if those other mountpoints were mounted with explicit
> options and this remount might affect those options?
>
> Isn't the same problem that we potentially have today?

Sure, but I'm trying to figure out what you mean when you talk about
"rejecting those which absolutely can't be changed dynamically". We can
potentially change pretty much any parameter dynamically if we really
want to (with the sole exception of 'nosharecache').

Cheers
Trond

2008-04-11 21:20:38

by Peter Staubach

[permalink] [raw]
Subject: Re: [PATCH] NFS: implement option checking when remounting NFS filesystems

Trond Myklebust wrote:
> On Fri, 2008-04-11 at 16:14 -0400, Peter Staubach wrote:
>
>> Trond Myklebust wrote:
>>
>>> On Fri, 2008-04-11 at 15:19 -0400, Peter Staubach wrote:
>>>
>>>
>>>> Jeff Layton wrote:
>>>>
>>>>
>>>>> When remounting an NFS or NFS4 filesystem, the new NFS options are not
>>>>> respected, yet the remount will still return success. This patch adds
>>>>> a remount_fs sb op for NFS that checks any new nfs mount options against
>>>>> the existing ones and fails the mount if any have changed.
>>>>>
>>>>> This is only implemented for string-based mount options since doing
>>>>> this with binary options isn't really feasible.
>>>>>
>>>>>
>>>> What about respecting the new options as makes sense and rejecting
>>>> those which absolutely can't be changed dynamically?
>>>>
>>>>
>>> If we were to do this, then how should superblocks that are shared
>>> between multiple mountpoints behave?
>>>
>> Do you mean if those other mountpoints were mounted with explicit
>> options and this remount might affect those options?
>>
>> Isn't the same problem that we potentially have today?
>>
>
> Sure, but I'm trying to figure out what you mean when you talk about
> "rejecting those which absolutely can't be changed dynamically". We can
> potentially change pretty much any parameter dynamically if we really
> want to (with the sole exception of 'nosharecache').

I hadn't actually put enough thought into which options can be
changed dynamically and which ones can not. I presume that we
could change anything that we want, but I think that it would
be good to ensure that the changes would be safe.

In the past, I have seen problems with adjusting wsize dynamically.
It needs to be done carefully or potential problems with the
server not being able to detect duplicate requests occur. That,
of course, was with a different implementation, but it has made
me wary ever since.

Thanx...

ps