Re: [nfs-utils PATCH] retry on EPERM from NFSv4 mount attempt

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

 



On Tue, Nov 24, 2009 at 09:29:47AM -0500, Steve Dickson wrote:
> 
> 
> On 11/23/2009 06:32 PM, Neil Brown wrote:
> > 
> > Hi,
> >  I recently packaged nfs-utils 1.2.1 for openSUSE and fairly quickly
> >  got a bug report - "-o nfsvers=3" was needed to mount NFSv3
> >  filesystems.
> > 
> >  mount.nfs in 1.2.1 will first try a v4 mount but will fall-back to v3
> >  if it gets ENOENT.  This works fine.
> >  However for kernel prior to 2.6.25, you don't get ENOENT, you get
> >  EPERM.
> >  In that case the fall-back to v3 doesn't happen and you get a failure
> >  to mount.
> > 
> >  So I think we need to fall back on EPERM as well.  See below.
> I already posted this patch on the v4 mailing list
> http://linux-nfs.org/pipermail/nfsv4/2009-November/011595.html
> but it got shot down...  at least that's how I interpreted the
> responses... 
> 
> But I do thing we need this, since there are so many server 
> that will simple break if we don't... Agreed?

My position is that servers should either a) turn off NFSv4 or b) add a
pseudoroot, and that we should modify initscripts to make this harder to
screw up.

(For now (without automatic pseudoroot creation) we should by default be
running rpc.nfsd with -N 4; and adding the v4 support should be
something administrators do when they add a pseudoroot.)

((If this is really totally unfeasible, then I should quickly cue up a
revert for the patch I have queued for 2.6.33 which changes this error
again, to SERVERFAULT....))

--b.

> 
> steved. 
> 
> 
> > 
> > Thanks,
> > NeilBrown
> > 
> > 
> > diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> > index b595649..68eb82b 100644
> > --- a/utils/mount/stropts.c
> > +++ b/utils/mount/stropts.c
> > @@ -657,8 +657,10 @@ static int nfs_try_mount(struct nfsmount_info *mi)
> >  				 * To deal with legacy Linux servers that don't
> >  				 * automatically export a pseudo root, retry
> >  				 * ENOENT errors using version 3
> > +				 * And for Linux servers prior to 2.6.25, retry
> > +				 * EPERM
> >  				 */
> > -				if (errno != ENOENT)
> > +				if (errno != ENOENT && errno != EPERM)
> >  					break;
> >  			}
> >  		}
> --
> 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
--
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