Re: nfs4 mounts failing with 3.6.0-rc1

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

 



On Tue, 2012-08-07 at 16:25 -0400, J. Bruce Fields wrote:
> On Tue, Aug 07, 2012 at 04:10:49PM -0400, Bryan Schumaker wrote:
> > On 08/07/2012 03:57 PM, J. Bruce Fields wrote:
> > > On Tue, Aug 07, 2012 at 03:44:53PM -0400, Bryan Schumaker wrote:
> > >> On 08/07/2012 03:42 PM, J. Bruce Fields wrote:
> > >>> On Tue, Aug 07, 2012 at 01:09:32PM -0400, Jeff Layton wrote:
> > >>>> On Sat, 4 Aug 2012 15:01:04 -0400
> > >>>> "J. Bruce Fields" <bfields@xxxxxxxxxxxx> wrote:
> > >>>>
> > >>>>> On Fri, Aug 03, 2012 at 10:00:39PM -0400, Jeff Layton wrote:
> > >>>>>> On Fri, 3 Aug 2012 20:08:19 -0400
> > >>>>>> "J. Bruce Fields" <bfields@xxxxxxxxxxxx> wrote:
> > >>>>>>
> > >>>>>>> I'm getting
> > >>>>>>>
> > >>>>>>> 	# mount -tnfs -onfsvers=4 pip1:/exports /mnt/
> > >>>>>>>
> > >>>>>>> (OK, admittedly that's with 3.6.0-rc1 + a few experimental patches, but
> > >>>>>>> I doubt they're related.)
> > >>>>>>>
> > >>>>>>> Also:
> > >>>>>>>
> > >>>>>>> 	[root@pip2 ~]# modprobe nfs4
> > >>>>>>> 	[root@pip2 ~]# lsmod|grep nfs4
> > >>>>>>> 	[root@pip2 ~]# 
> > >>>>>>>
> > >>>>>>> --b.
> > >>>>>>
> > >>>>>> I hit the same problem...
> > >>>>>>
> > >>>>>> Try removing /usr/lib/modprobe.d/nfs.conf (assuming you're running
> > >>>>>> Fedora).
> > >>>>>
> > >>>>> Oog, right.
> > >>>>>
> > >>>>> But, without testing--won't that make v4 mounts fail on older kernels?
> > >>>>
> > >>>> Actually, now that I look, this does not seem to break on older kernels
> > >>>> as long as you use a syntax like:
> > >>>>
> > >>>>     # mount -t nfs server:/export /mnt/point -o vers=4
> > >>>>
> > >>>> ...if, however you use a syntax like:
> > >>>>
> > >>>>     # mount -t nfs4 server:/export /mnt/point
> > >>>>
> > >>>> ...then it fails without the above file in place. I guess the question
> > >>>> we have to answer is: Do we want to continue to support the "-t nfs4"
> > >>>> mount syntax?
> > >>>
> > >>> I think you're right that we want to deprecate it.
> > >>>
> > >>> Though this is a bit of a harsh way to do it--would have been nice to
> > >>> have some transition period with a warning or something.
> > >>
> > >> I didn't expect this to be broken, both ways of mounting still work on my VMs so I expected them to work for everybody else too.
> > > 
> > > Huh.  Just checked on an old kernel without an "alias nfs4 nfs" in
> > > modprobe configuration, and sure enough I get "No such device".
> > > 
> > > Maybe you have some initscripts or something else that's loading the
> > > nfs module for you before the mount?
> > 
> > My nfs-common daemon script loads sunrpc, nfs
> 
> Yep, that's why you're not seeing it.
> 
> > and nfsd but not nfs2, nfs3 or nfs4.
> > 
> > Could we rename the module to avoid the alias name collision?  Something like this (untested) maybe?
> 
> I don't think that will help.

It should if we also add back in

struct file_system_type nfs4_fs_type = {
        .owner          = THIS_MODULE,
        .name           = "nfs4",
        .mount          = nfs_fs_mount,
        .kill_sb        = nfs_kill_super,
        .fs_flags       = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
};

and then add that to register_nfs_fs()/unregister_nfs_fs(). As far as I
can see, that will trigger all the right incantations in
nfs_validate_mount_data() to mount an NFSv4 filesystem.

> > 
> > 
> > 
> > diff --git a/fs/nfs/Makefile b/fs/nfs/Makefile
> > index 8bf3a3f..b7db608 100644
> > --- a/fs/nfs/Makefile
> > +++ b/fs/nfs/Makefile
> > @@ -12,19 +12,19 @@ nfs-$(CONFIG_ROOT_NFS)      += nfsroot.o
> >  nfs-$(CONFIG_SYSCTL)   += sysctl.o
> >  nfs-$(CONFIG_NFS_FSCACHE) += fscache.o fscache-index.o
> >  
> > -obj-$(CONFIG_NFS_V2) += nfs2.o
> > -nfs2-y := nfs2super.o proc.o nfs2xdr.o
> > +obj-$(CONFIG_NFS_V2) += nfsv2.o
> > +nfsv2-y := nfs2super.o proc.o nfs2xdr.o
> >  
> > -obj-$(CONFIG_NFS_V3) += nfs3.o
> > -nfs3-y := nfs3super.o nfs3client.o nfs3proc.o nfs3xdr.o
> > -nfs3-$(CONFIG_NFS_V3_ACL) += nfs3acl.o
> > +obj-$(CONFIG_NFS_V3) += nfsv3.o
> > +nfsv3-y := nfs3super.o nfs3client.o nfs3proc.o nfs3xdr.o
> > +nfsv3-$(CONFIG_NFS_V3_ACL) += nfs3acl.o
> >  
> > -obj-$(CONFIG_NFS_V4) += nfs4.o
> > -nfs4-y := nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o nfs4super.o nfs4file.o \
> > +obj-$(CONFIG_NFS_V4) += nfsv4.o
> > +nfsv4-y := nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o nfs4super.o nfs4file.o \
> >           delegation.o idmap.o callback.o callback_xdr.o callback_proc.o \
> >           nfs4namespace.o nfs4getroot.o nfs4client.o
> > -nfs4-$(CONFIG_SYSCTL)  += nfs4sysctl.o
> > -nfs4-$(CONFIG_NFS_V4_1)        += pnfs.o pnfs_dev.o
> > +nfsv4-$(CONFIG_SYSCTL) += nfs4sysctl.o
> > +nfsv4-$(CONFIG_NFS_V4_1)       += pnfs.o pnfs_dev.o
> >  
> >  obj-$(CONFIG_PNFS_FILE_LAYOUT) += nfs_layout_nfsv41_files.o
> >  nfs_layout_nfsv41_files-y := nfs4filelayout.o nfs4filelayoutdev.o
> > diff --git a/fs/nfs/client.c b/fs/nfs/client.c
> > index 9fc0d9d..9969444 100644
> > --- a/fs/nfs/client.c
> > +++ b/fs/nfs/client.c
> > @@ -105,7 +105,7 @@ struct nfs_subversion *get_nfs_version(unsigned int version)
> >  
> >         if (IS_ERR(nfs)) {
> >                 mutex_lock(&nfs_version_mutex);
> > -               request_module("nfs%d", version);
> > +               request_module("nfsv%d", version);
> >                 nfs = find_nfs_version(version);
> >                 mutex_unlock(&nfs_version_mutex);
> >         }
> > 
> > 
> > > 
> > > --b.
> > > 
> > 
> --
> 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

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com

��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥



[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