linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure???
@ 2007-02-20 18:05 Wouter Batelaan
  2007-02-21  0:04 ` Neil Brown
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Wouter Batelaan @ 2007-02-20 18:05 UTC (permalink / raw)
  To: linux-fsdevel@vger.kernel.org

Hi,

I'm trying to get an nfs server setup on our embedded 2.6.19 kernel 
system. I've chosen to use the kernel nfsd module,
and am using the latest nfs-utils.
It all starts running, but I get this:
     mount -t nfs 127.0.0.1:/etc /tmp/try
mount: 127.0.0.1:/etc failed, reason given by server: Permission denied
mount: nfsmount failed: Bad file descriptor
mount: Mounting 127.0.0.1:/etc on /tmp/try failed: Bad file descriptor

Having added a bit of debugging /var/log/messages shows this:
daemon.warn mountd[545]: getfh.c:73: getfh_size (/etc)
daemon.warn mountd[545]: nfsctl.c:26: syscall nfsctl
daemon.warn mountd[545]: nfsctl.c:28: syscall nfsctl => -1
daemon.warn mountd[545]: getfh failed: Operation not permitted

Looking in detail at the syscall made, I see that the structure
definition for nfsctl_arg is different between kernel and nfs-utils.

Huh? What am I missing here? Any pointers appreciated.
Wouter.

Kernel 2.6.19.1: include/linux/nfsd/syscall.h:
struct nfsctl_arg {
	int			ca_version;	/* safeguard */
	union {
		struct nfsctl_svc	u_svc;
		struct nfsctl_client	u_client;
		struct nfsctl_export	u_export;
		struct nfsctl_fdparm	u_getfd;
		struct nfsctl_fsparm	u_getfs;
                 <snip>
		void *u_ptr;
	} u;


nfs-utils 1.0.10: support/include/nfs/nfs.h:
struct nfsctl_arg {
	int			ca_version;	/* safeguard */
	union {
		struct nfsctl_svc	u_svc;
		struct nfsctl_client	u_client;
		struct nfsctl_export	u_export;
		struct nfsctl_uidmap	u_umap;
		struct nfsctl_fhparm	u_getfh;
		struct nfsctl_fdparm	u_getfd;
		struct nfsctl_fsparm	u_getfs;
	} u;




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure???
  2007-02-20 18:05 mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure??? Wouter Batelaan
@ 2007-02-21  0:04 ` Neil Brown
  2007-02-21 15:46 ` Wouter Batelaan
  2007-02-23 15:25 ` Wouter Batelaan
  2 siblings, 0 replies; 5+ messages in thread
From: Neil Brown @ 2007-02-21  0:04 UTC (permalink / raw)
  To: Wouter Batelaan; +Cc: linux-fsdevel@vger.kernel.org

On Tuesday February 20, wouter.batelaan@nxp.com wrote:
> Hi,
> 
> I'm trying to get an nfs server setup on our embedded 2.6.19 kernel 
> system. I've chosen to use the kernel nfsd module,
> and am using the latest nfs-utils.
> It all starts running, but I get this:
>      mount -t nfs 127.0.0.1:/etc /tmp/try
> mount: 127.0.0.1:/etc failed, reason given by server: Permission denied
> mount: nfsmount failed: Bad file descriptor
> mount: Mounting 127.0.0.1:/etc on /tmp/try failed: Bad file descriptor
> 
> Having added a bit of debugging /var/log/messages shows this:
> daemon.warn mountd[545]: getfh.c:73: getfh_size (/etc)
> daemon.warn mountd[545]: nfsctl.c:26: syscall nfsctl
> daemon.warn mountd[545]: nfsctl.c:28: syscall nfsctl => -1
> daemon.warn mountd[545]: getfh failed: Operation not permitted

You will need patch f988443a84528bd30c2f474efa5e2c511959f19b [1]
or run
   mount -t nfsd nfsd /proc/fs/nfs/nfsd
before starting mountd.


> 
> Looking in detail at the syscall made, I see that the structure
> definition for nfsctl_arg is different between kernel and nfs-utils.
> 
> Huh? What am I missing here? Any pointers appreciated.
> Wouter.

The differences are not significant.

NeilBrown

[1] http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f988443a84528bd30c2f474efa5e2c511959f19b


> 
> Kernel 2.6.19.1: include/linux/nfsd/syscall.h:
> struct nfsctl_arg {
> 	int			ca_version;	/* safeguard */
> 	union {
> 		struct nfsctl_svc	u_svc;
> 		struct nfsctl_client	u_client;
> 		struct nfsctl_export	u_export;
> 		struct nfsctl_fdparm	u_getfd;
> 		struct nfsctl_fsparm	u_getfs;
>                  <snip>
> 		void *u_ptr;
> 	} u;
> 
> 
> nfs-utils 1.0.10: support/include/nfs/nfs.h:
> struct nfsctl_arg {
> 	int			ca_version;	/* safeguard */
> 	union {
> 		struct nfsctl_svc	u_svc;
> 		struct nfsctl_client	u_client;
> 		struct nfsctl_export	u_export;
> 		struct nfsctl_uidmap	u_umap;
> 		struct nfsctl_fhparm	u_getfh;
> 		struct nfsctl_fdparm	u_getfd;
> 		struct nfsctl_fsparm	u_getfs;
> 	} u;
> 
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure???
  2007-02-20 18:05 mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure??? Wouter Batelaan
  2007-02-21  0:04 ` Neil Brown
@ 2007-02-21 15:46 ` Wouter Batelaan
  2007-02-21 20:03   ` Neil Brown
  2007-02-23 15:25 ` Wouter Batelaan
  2 siblings, 1 reply; 5+ messages in thread
From: Wouter Batelaan @ 2007-02-21 15:46 UTC (permalink / raw)
  To: linux-fsdevel@vger.kernel.org

linux-fsdevel-owner@vger.kernel.org wrote on 2007-02-21 00:04:40:

 > You will need patch f988443a84528bd30c2f474efa5e2c511959f19b [1]
 > or run
 >    mount -t nfsd nfsd /proc/fs/nfs/nfsd
 > before starting mountd.

I applied the patch, and attempted the mount cmd above.
I assume you mistyped the directory path, because
/proc/fs/nfs/nfsd does not exist, so I used /proc/fs/nfsd

Unfortunately it has not made any difference.

 > The differences are not significant.

Really? Surely if userspace uses this order

 > >       struct nfsctl_uidmap   u_umap;
 > >       struct nfsctl_fhparm   u_getfh;
 > >       struct nfsctl_fdparm   u_getfd;
 > >       struct nfsctl_fsparm   u_getfs;

but kernelspace expects this
 > >       struct nfsctl_fdparm   u_getfd;
 > >       struct nfsctl_fsparm   u_getfs;

then we have significant differences?
But if you're sure, then what else can be wrong?
My /etc/exports file contains (adding all 'unsafe' options I can find):

/p 
(rw,sync,no_root_squash,no_subtree_check,crossmnt,insecure,nohide,insecure_locks,no_acl)

I tried with and without (empty) hosts.allow and hosts.deny files.

I'm running out of ideas :-(

Wouter Batelaan



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure???
  2007-02-21 15:46 ` Wouter Batelaan
@ 2007-02-21 20:03   ` Neil Brown
  0 siblings, 0 replies; 5+ messages in thread
From: Neil Brown @ 2007-02-21 20:03 UTC (permalink / raw)
  To: Wouter Batelaan; +Cc: linux-fsdevel@vger.kernel.org

On Wednesday February 21, wouter.batelaan@nxp.com wrote:
> linux-fsdevel-owner@vger.kernel.org wrote on 2007-02-21 00:04:40:
> 
>  > You will need patch f988443a84528bd30c2f474efa5e2c511959f19b [1]
>  > or run
>  >    mount -t nfsd nfsd /proc/fs/nfs/nfsd
>  > before starting mountd.
> 
> I applied the patch, and attempted the mount cmd above.
> I assume you mistyped the directory path, because
> /proc/fs/nfs/nfsd does not exist, so I used /proc/fs/nfsd

Sorry, yes.  You chose the right path.

> 
> Unfortunately it has not made any difference.
> 
>  > The differences are not significant.
> 
> Really? Surely if userspace uses this order
> 
>  > >       struct nfsctl_uidmap   u_umap;
>  > >       struct nfsctl_fhparm   u_getfh;
>  > >       struct nfsctl_fdparm   u_getfd;
>  > >       struct nfsctl_fsparm   u_getfs;
> 
> but kernelspace expects this
>  > >       struct nfsctl_fdparm   u_getfd;
>  > >       struct nfsctl_fsparm   u_getfs;

They are inside a 'union'  Order is unimportant.

> 
> then we have significant differences?
> But if you're sure, then what else can be wrong?
> My /etc/exports file contains (adding all 'unsafe' options I can find):
> 
> /p 
> (rw,sync,no_root_squash,no_subtree_check,crossmnt,insecure,nohide,insecure_locks,no_acl)
> 
> I tried with and without (empty) hosts.allow and hosts.deny files.
> 
> I'm running out of ideas :-(

Run
  strace -o /tmp/strace -s 1000 -p `pidof mountd`
on the server, then attempt the mount on the client.
Then interrupt the 'strace' and send me "/tmp/trace".

NeilBrown


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure???
  2007-02-20 18:05 mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure??? Wouter Batelaan
  2007-02-21  0:04 ` Neil Brown
  2007-02-21 15:46 ` Wouter Batelaan
@ 2007-02-23 15:25 ` Wouter Batelaan
  2 siblings, 0 replies; 5+ messages in thread
From: Wouter Batelaan @ 2007-02-23 15:25 UTC (permalink / raw)
  To: linux-fsdevel@vger.kernel.org; +Cc: Neil Brown

To all who took an interest, and Neil Brown who gave help:

I've got the nfs server working now.

At the end there were several issues
(note that we're on dual-MIPS embedded system, starting off
with a very minimal system because of space constraints):

- /etc/services was not correct
- no network loopback interface
- trying to export part of an NFSROOT (imported) file system
- /etc/exports netmask problem
- having to run portmap on client machine as well
- missing fsid option in exports file

:-(I'm not 100% sure that ALL of the above were/are critical)

I temporarily also used the unfs3 server with success, but
eventually got the knfsd working.

Thanks for the help.

Kind Regards,
Wouter Batelaan
NXP Semiconductors.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-02-23 15:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-20 18:05 mismatch between 2.6.19 and nfs-utils-1.0.10 nfsctl_arg structure??? Wouter Batelaan
2007-02-21  0:04 ` Neil Brown
2007-02-21 15:46 ` Wouter Batelaan
2007-02-21 20:03   ` Neil Brown
2007-02-23 15:25 ` Wouter Batelaan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).