diff mbox

[RFC] mount.nfs: skip option validation on remount

Message ID 712798c489f69e39f235077f6ca85a7c133eeb58.1459949813.git.bcodding@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Benjamin Coddington April 6, 2016, 1:41 p.m. UTC
I'm not exactly sure this is the safest thing to do since you can pass
-oremount on the first mount and skip option validation.  Maybe someone with
better insight into the mount paths could comment.  Does mount need some
refactoring?  Its logic seems arcane.. and I think there is a lot of dead
code.

This is very quick attempt to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1313550

8<-------------------------------------------------------------------------

A remount might fail if name resolution returns a different server address
for the mount.  Since we've already validated the options the first time,
skip validation if remounting.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
---
 utils/mount/stropts.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Comments

Chuck Lever April 6, 2016, 3:10 p.m. UTC | #1
> On Apr 6, 2016, at 6:41 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> 
> I'm not exactly sure this is the safest thing to do since you can pass
> -oremount on the first mount and skip option validation.  Maybe someone with
> better insight into the mount paths could comment.  Does mount need some
> refactoring?  Its logic seems arcane.. and I think there is a lot of dead
> code.

It's arcane because NFS mounting has a lot of corner cases
that have evolved over the years. If you have an example of
dead code, can you post it?


> This is very quick attempt to fix
> https://bugzilla.redhat.com/show_bug.cgi?id=1313550

"You are not authorized to access bug #1313550."

I'm guessing you want to use the existing addr= option on a
remount in case the DNS resolution returns a different address.
I'm uncertain why a remount should succeed in this case: if
the server has a different IP address, how was the mount working
at all?


> 8<-------------------------------------------------------------------------
> 
> A remount might fail if name resolution returns a different server address
> for the mount.  Since we've already validated the options the first time,
> skip validation if remounting.
> 
> Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
> ---
> utils/mount/stropts.c |    6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 86829a9..9383bb4 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -1090,15 +1090,15 @@ static const char *nfs_background_opttbl[] = {
> 
> static int nfsmount_start(struct nfsmount_info *mi)
> {
> -	if (!nfs_validate_options(mi))
> -		return EX_FAIL;
> -
> 	/*
> 	 * Avoid retry and negotiation logic when remounting
> 	 */
> 	if (mi->flags & MS_REMOUNT)
> 		return nfs_remount(mi);
> 
> +	if (!nfs_validate_options(mi))
> +		return EX_FAIL;
> +
> 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
> 		return nfsmount_bg(mi);
> 	else
> -- 
> 1.7.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Benjamin Coddington April 6, 2016, 3:24 p.m. UTC | #2
On Wed, 6 Apr 2016, Chuck Lever wrote:
>
> > On Apr 6, 2016, at 6:41 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> >
> > I'm not exactly sure this is the safest thing to do since you can pass
> > -oremount on the first mount and skip option validation.  Maybe someone with
> > better insight into the mount paths could comment.  Does mount need some
> > refactoring?  Its logic seems arcane.. and I think there is a lot of dead
> > code.
>
> It's arcane because NFS mounting has a lot of corner cases
> that have evolved over the years. If you have an example of
> dead code, can you post it?

Absolutely.  I don't have it ready right now, but I do remember coming across
some sections several times and wondering how they could be used.

I need to do a better job of posting when I find things instead of putting
them off and forgetting about them.

> > This is very quick attempt to fix
> > https://bugzilla.redhat.com/show_bug.cgi?id=1313550
>
> "You are not authorized to access bug #1313550."

Sorry.  I've just tried to fix that and I cannot.  The basic info there is
that kdump always tries to remount,rw a target.. and that is breaking on
NFS.  The bug doesn't really provide anything more useful to the discussion
other than maybe help Steved find the original problem.

> I'm guessing you want to use the existing addr= option on a
> remount in case the DNS resolution returns a different address.

Right.

> I'm uncertain why a remount should succeed in this case: if
> the server has a different IP address, how was the mount working
> at all?

If the server has multiple A or AAAA records, and the the results are
returned round-robin style, we can end up with a different address for
the server.

Ben

> > 8<-------------------------------------------------------------------------
> >
> > A remount might fail if name resolution returns a different server address
> > for the mount.  Since we've already validated the options the first time,
> > skip validation if remounting.
> >
> > Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
> > ---
> > utils/mount/stropts.c |    6 +++---
> > 1 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> > index 86829a9..9383bb4 100644
> > --- a/utils/mount/stropts.c
> > +++ b/utils/mount/stropts.c
> > @@ -1090,15 +1090,15 @@ static const char *nfs_background_opttbl[] = {
> >
> > static int nfsmount_start(struct nfsmount_info *mi)
> > {
> > -	if (!nfs_validate_options(mi))
> > -		return EX_FAIL;
> > -
> > 	/*
> > 	 * Avoid retry and negotiation logic when remounting
> > 	 */
> > 	if (mi->flags & MS_REMOUNT)
> > 		return nfs_remount(mi);
> >
> > +	if (!nfs_validate_options(mi))
> > +		return EX_FAIL;
> > +
> > 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
> > 		return nfsmount_bg(mi);
> > 	else
> > --
> > 1.7.1
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> --
> Chuck Lever
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chuck Lever April 6, 2016, 3:47 p.m. UTC | #3
> On Apr 6, 2016, at 8:24 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> 
> On Wed, 6 Apr 2016, Chuck Lever wrote:
>> 
>>> On Apr 6, 2016, at 6:41 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
>>> 
>>> I'm not exactly sure this is the safest thing to do since you can pass
>>> -oremount on the first mount and skip option validation.  Maybe someone with
>>> better insight into the mount paths could comment.  Does mount need some
>>> refactoring?  Its logic seems arcane.. and I think there is a lot of dead
>>> code.
>> 
>> It's arcane because NFS mounting has a lot of corner cases
>> that have evolved over the years. If you have an example of
>> dead code, can you post it?
> 
> Absolutely.  I don't have it ready right now, but I do remember coming across
> some sections several times and wondering how they could be used.
> 
> I need to do a better job of posting when I find things instead of putting
> them off and forgetting about them.
> 
>>> This is very quick attempt to fix
>>> https://bugzilla.redhat.com/show_bug.cgi?id=1313550
>> 
>> "You are not authorized to access bug #1313550."
> 
> Sorry.  I've just tried to fix that and I cannot.  The basic info there is
> that kdump always tries to remount,rw a target.. and that is breaking on
> NFS.

Always breaking? Or just in the case where the server has
multiple homes?


> The bug doesn't really provide anything more useful to the discussion
> other than maybe help Steved find the original problem.
> 
>> I'm guessing you want to use the existing addr= option on a
>> remount in case the DNS resolution returns a different address.
> 
> Right.
> 
>> I'm uncertain why a remount should succeed in this case: if
>> the server has a different IP address, how was the mount working
>> at all?
> 
> If the server has multiple A or AAAA records, and the the results are
> returned round-robin style, we can end up with a different address for
> the server.

I agree that a second DNS resolution here is probably not
helpful or needed. Still, multi-home NFS seems like a crap
shoot to begin with. Maybe I'm just not awake yet.

But I think you do need to validate mount options on a
remount: otherwise you can pass "-o remount,garbage". Or
did I misunderstand?


> Ben
> 
>>> 8<-------------------------------------------------------------------------
>>> 
>>> A remount might fail if name resolution returns a different server address
>>> for the mount.  Since we've already validated the options the first time,
>>> skip validation if remounting.
>>> 
>>> Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
>>> ---
>>> utils/mount/stropts.c |    6 +++---
>>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>> 
>>> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
>>> index 86829a9..9383bb4 100644
>>> --- a/utils/mount/stropts.c
>>> +++ b/utils/mount/stropts.c
>>> @@ -1090,15 +1090,15 @@ static const char *nfs_background_opttbl[] = {
>>> 
>>> static int nfsmount_start(struct nfsmount_info *mi)
>>> {
>>> -	if (!nfs_validate_options(mi))
>>> -		return EX_FAIL;
>>> -
>>> 	/*
>>> 	 * Avoid retry and negotiation logic when remounting
>>> 	 */
>>> 	if (mi->flags & MS_REMOUNT)
>>> 		return nfs_remount(mi);
>>> 
>>> +	if (!nfs_validate_options(mi))
>>> +		return EX_FAIL;
>>> +
>>> 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
>>> 		return nfsmount_bg(mi);
>>> 	else
>>> --
>>> 1.7.1
>>> 
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> 
>> --
>> Chuck Lever

--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Benjamin Coddington April 6, 2016, 3:58 p.m. UTC | #4
On Wed, 6 Apr 2016, Chuck Lever wrote:

>
> > On Apr 6, 2016, at 8:24 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> >
> > On Wed, 6 Apr 2016, Chuck Lever wrote:
> >>
> >>> On Apr 6, 2016, at 6:41 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> >>>
> >>> I'm not exactly sure this is the safest thing to do since you can pass
> >>> -oremount on the first mount and skip option validation.  Maybe someone with
> >>> better insight into the mount paths could comment.  Does mount need some
> >>> refactoring?  Its logic seems arcane.. and I think there is a lot of dead
> >>> code.
> >>
> >> It's arcane because NFS mounting has a lot of corner cases
> >> that have evolved over the years. If you have an example of
> >> dead code, can you post it?
> >
> > Absolutely.  I don't have it ready right now, but I do remember coming across
> > some sections several times and wondering how they could be used.
> >
> > I need to do a better job of posting when I find things instead of putting
> > them off and forgetting about them.
> >
> >>> This is very quick attempt to fix
> >>> https://bugzilla.redhat.com/show_bug.cgi?id=1313550
> >>
> >> "You are not authorized to access bug #1313550."
> >
> > Sorry.  I've just tried to fix that and I cannot.  The basic info there is
> > that kdump always tries to remount,rw a target.. and that is breaking on
> > NFS.
>
> Always breaking? Or just in the case where the server has
> multiple homes?

In the case of multiple records.

> > The bug doesn't really provide anything more useful to the discussion
> > other than maybe help Steved find the original problem.
> >
> >> I'm guessing you want to use the existing addr= option on a
> >> remount in case the DNS resolution returns a different address.
> >
> > Right.
> >
> >> I'm uncertain why a remount should succeed in this case: if
> >> the server has a different IP address, how was the mount working
> >> at all?
> >
> > If the server has multiple A or AAAA records, and the the results are
> > returned round-robin style, we can end up with a different address for
> > the server.
>
> I agree that a second DNS resolution here is probably not
> helpful or needed. Still, multi-home NFS seems like a crap
> shoot to begin with. Maybe I'm just not awake yet.

It is a crap-shoot.  But I think I should try to give a multi-homed server a
shot at serving NFS..  In this case, the server may not actually even
respond on the additional addresses - they just resolve.

> But I think you do need to validate mount options on a
> remount: otherwise you can pass "-o remount,garbage". Or
> did I misunderstand?

No, I don't think you did.. and that's the second opinion I'd sorta
expected.  So thanks for looking at this, and I'll re-spin it to do it the
non-lazy way.

Ben

> >
> >>> 8<-------------------------------------------------------------------------
> >>>
> >>> A remount might fail if name resolution returns a different server address
> >>> for the mount.  Since we've already validated the options the first time,
> >>> skip validation if remounting.
> >>>
> >>> Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
> >>> ---
> >>> utils/mount/stropts.c |    6 +++---
> >>> 1 files changed, 3 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> >>> index 86829a9..9383bb4 100644
> >>> --- a/utils/mount/stropts.c
> >>> +++ b/utils/mount/stropts.c
> >>> @@ -1090,15 +1090,15 @@ static const char *nfs_background_opttbl[] = {
> >>>
> >>> static int nfsmount_start(struct nfsmount_info *mi)
> >>> {
> >>> -	if (!nfs_validate_options(mi))
> >>> -		return EX_FAIL;
> >>> -
> >>> 	/*
> >>> 	 * Avoid retry and negotiation logic when remounting
> >>> 	 */
> >>> 	if (mi->flags & MS_REMOUNT)
> >>> 		return nfs_remount(mi);
> >>>
> >>> +	if (!nfs_validate_options(mi))
> >>> +		return EX_FAIL;
> >>> +
> >>> 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
> >>> 		return nfsmount_bg(mi);
> >>> 	else
> >>> --
> >>> 1.7.1
> >>>
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> >>> the body of a message to majordomo@vger.kernel.org
> >>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >>
> >> --
> >> Chuck Lever
>
> --
> Chuck Lever
>
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chuck Lever April 6, 2016, 3:59 p.m. UTC | #5
> On Apr 6, 2016, at 8:47 AM, Chuck Lever <chuck.lever@oracle.com> wrote:
> 
>> 
>> On Apr 6, 2016, at 8:24 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
>> 
>> On Wed, 6 Apr 2016, Chuck Lever wrote:
>>> 
>>>> On Apr 6, 2016, at 6:41 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
>>>> 
>>>> I'm not exactly sure this is the safest thing to do since you can pass
>>>> -oremount on the first mount and skip option validation.  Maybe someone with
>>>> better insight into the mount paths could comment.  Does mount need some
>>>> refactoring?  Its logic seems arcane.. and I think there is a lot of dead
>>>> code.
>>> 
>>> It's arcane because NFS mounting has a lot of corner cases
>>> that have evolved over the years. If you have an example of
>>> dead code, can you post it?
>> 
>> Absolutely.  I don't have it ready right now, but I do remember coming across
>> some sections several times and wondering how they could be used.
>> 
>> I need to do a better job of posting when I find things instead of putting
>> them off and forgetting about them.
>> 
>>>> This is very quick attempt to fix
>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1313550
>>> 
>>> "You are not authorized to access bug #1313550."
>> 
>> Sorry.  I've just tried to fix that and I cannot.  The basic info there is
>> that kdump always tries to remount,rw a target.. and that is breaking on
>> NFS.
> 
> Always breaking? Or just in the case where the server has
> multiple homes?
> 
> 
>> The bug doesn't really provide anything more useful to the discussion
>> other than maybe help Steved find the original problem.
>> 
>>> I'm guessing you want to use the existing addr= option on a
>>> remount in case the DNS resolution returns a different address.
>> 
>> Right.
>> 
>>> I'm uncertain why a remount should succeed in this case: if
>>> the server has a different IP address, how was the mount working
>>> at all?
>> 
>> If the server has multiple A or AAAA records, and the the results are
>> returned round-robin style, we can end up with a different address for
>> the server.
> 
> I agree that a second DNS resolution here is probably not
> helpful or needed. Still, multi-home NFS seems like a crap
> shoot to begin with. Maybe I'm just not awake yet.

I should clarify: I mean round-robin here, not multi-home.

Is this only a problem when the server has an A and an
AAAA address, and there's no "proto=" specified?


> But I think you do need to validate mount options on a
> remount: otherwise you can pass "-o remount,garbage". Or
> did I misunderstand?
> 
> 
>> Ben
>> 
>>>> 8<-------------------------------------------------------------------------
>>>> 
>>>> A remount might fail if name resolution returns a different server address
>>>> for the mount.  Since we've already validated the options the first time,
>>>> skip validation if remounting.
>>>> 
>>>> Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
>>>> ---
>>>> utils/mount/stropts.c |    6 +++---
>>>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>>> 
>>>> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
>>>> index 86829a9..9383bb4 100644
>>>> --- a/utils/mount/stropts.c
>>>> +++ b/utils/mount/stropts.c
>>>> @@ -1090,15 +1090,15 @@ static const char *nfs_background_opttbl[] = {
>>>> 
>>>> static int nfsmount_start(struct nfsmount_info *mi)
>>>> {
>>>> -	if (!nfs_validate_options(mi))
>>>> -		return EX_FAIL;
>>>> -
>>>> 	/*
>>>> 	 * Avoid retry and negotiation logic when remounting
>>>> 	 */
>>>> 	if (mi->flags & MS_REMOUNT)
>>>> 		return nfs_remount(mi);
>>>> 
>>>> +	if (!nfs_validate_options(mi))
>>>> +		return EX_FAIL;
>>>> +
>>>> 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
>>>> 		return nfsmount_bg(mi);
>>>> 	else
>>>> --
>>>> 1.7.1
>>>> 
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> 
>>> --
>>> Chuck Lever
> 
> --
> Chuck Lever
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Benjamin Coddington April 6, 2016, 4:07 p.m. UTC | #6
On Wed, 6 Apr 2016, Chuck Lever wrote:

>
> > On Apr 6, 2016, at 8:47 AM, Chuck Lever <chuck.lever@oracle.com> wrote:
> >
> >>
> >> On Apr 6, 2016, at 8:24 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> >>
> >> On Wed, 6 Apr 2016, Chuck Lever wrote:
> >>>
> >>>> On Apr 6, 2016, at 6:41 AM, Benjamin Coddington <bcodding@redhat.com> wrote:
> >>>>
> >>>> I'm not exactly sure this is the safest thing to do since you can pass
> >>>> -oremount on the first mount and skip option validation.  Maybe someone with
> >>>> better insight into the mount paths could comment.  Does mount need some
> >>>> refactoring?  Its logic seems arcane.. and I think there is a lot of dead
> >>>> code.
> >>>
> >>> It's arcane because NFS mounting has a lot of corner cases
> >>> that have evolved over the years. If you have an example of
> >>> dead code, can you post it?
> >>
> >> Absolutely.  I don't have it ready right now, but I do remember coming across
> >> some sections several times and wondering how they could be used.
> >>
> >> I need to do a better job of posting when I find things instead of putting
> >> them off and forgetting about them.
> >>
> >>>> This is very quick attempt to fix
> >>>> https://bugzilla.redhat.com/show_bug.cgi?id=1313550
> >>>
> >>> "You are not authorized to access bug #1313550."
> >>
> >> Sorry.  I've just tried to fix that and I cannot.  The basic info there is
> >> that kdump always tries to remount,rw a target.. and that is breaking on
> >> NFS.
> >
> > Always breaking? Or just in the case where the server has
> > multiple homes?
> >
> >
> >> The bug doesn't really provide anything more useful to the discussion
> >> other than maybe help Steved find the original problem.
> >>
> >>> I'm guessing you want to use the existing addr= option on a
> >>> remount in case the DNS resolution returns a different address.
> >>
> >> Right.
> >>
> >>> I'm uncertain why a remount should succeed in this case: if
> >>> the server has a different IP address, how was the mount working
> >>> at all?
> >>
> >> If the server has multiple A or AAAA records, and the the results are
> >> returned round-robin style, we can end up with a different address for
> >> the server.
> >
> > I agree that a second DNS resolution here is probably not
> > helpful or needed. Still, multi-home NFS seems like a crap
> > shoot to begin with. Maybe I'm just not awake yet.
>
> I should clarify: I mean round-robin here, not multi-home.
>
> Is this only a problem when the server has an A and an
> AAAA address, and there's no "proto=" specified?

In my testing it was a problem when returning multiple A records
round-robin.  I think the same thing would be true of multiple AAAA records.

I don't think this problem exists with an A record and an AAAA record
because getaddrinfo doesn't group them - they are different families.

Ben

> > But I think you do need to validate mount options on a
> > remount: otherwise you can pass "-o remount,garbage". Or
> > did I misunderstand?
> >
> >
> >> Ben
> >>
> >>>> 8<-------------------------------------------------------------------------
> >>>>
> >>>> A remount might fail if name resolution returns a different server address
> >>>> for the mount.  Since we've already validated the options the first time,
> >>>> skip validation if remounting.
> >>>>
> >>>> Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
> >>>> ---
> >>>> utils/mount/stropts.c |    6 +++---
> >>>> 1 files changed, 3 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> >>>> index 86829a9..9383bb4 100644
> >>>> --- a/utils/mount/stropts.c
> >>>> +++ b/utils/mount/stropts.c
> >>>> @@ -1090,15 +1090,15 @@ static const char *nfs_background_opttbl[] = {
> >>>>
> >>>> static int nfsmount_start(struct nfsmount_info *mi)
> >>>> {
> >>>> -	if (!nfs_validate_options(mi))
> >>>> -		return EX_FAIL;
> >>>> -
> >>>> 	/*
> >>>> 	 * Avoid retry and negotiation logic when remounting
> >>>> 	 */
> >>>> 	if (mi->flags & MS_REMOUNT)
> >>>> 		return nfs_remount(mi);
> >>>>
> >>>> +	if (!nfs_validate_options(mi))
> >>>> +		return EX_FAIL;
> >>>> +
> >>>> 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
> >>>> 		return nfsmount_bg(mi);
> >>>> 	else
> >>>> --
> >>>> 1.7.1
> >>>>
> >>>> --
> >>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> >>>> the body of a message to majordomo@vger.kernel.org
> >>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >>>
> >>> --
> >>> Chuck Lever
> >
> > --
> > Chuck Lever
> >
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> --
> Chuck Lever
>
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 86829a9..9383bb4 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -1090,15 +1090,15 @@  static const char *nfs_background_opttbl[] = {
 
 static int nfsmount_start(struct nfsmount_info *mi)
 {
-	if (!nfs_validate_options(mi))
-		return EX_FAIL;
-
 	/*
 	 * Avoid retry and negotiation logic when remounting
 	 */
 	if (mi->flags & MS_REMOUNT)
 		return nfs_remount(mi);
 
+	if (!nfs_validate_options(mi))
+		return EX_FAIL;
+
 	if (po_rightmost(mi->options, nfs_background_opttbl) == 0)
 		return nfsmount_bg(mi);
 	else