2009-08-18 12:46:00

by Chuck Lever

[permalink] [raw]
Subject: Re: nfs MNT include cleanup

On Aug 18, 2009, at 6:36 AM, maximilian attems wrote:
> On Tue, 11 Aug 2009, Chuck Lever wrote:
>
>> On Aug 11, 2009, at 6:44 AM, maximilian attems wrote:
>>> 2ad780978b7c0c3e7877949f098cbd06e7c73839 broke klibc build
>>> MNTPROC_MNT and MNTPROC_UMNT no longer defined.
>>
>> I assume then that klibc is out of tree? I can't find it in my
>> kernel repo.
>
> sorry for late reply, indeed you'll find it here:
> http://git.kernel.org/?p=3Dlibs/klibc/klibc.git;a=3Dsummary
>
>>> usr/kinit/nfsmount/mount.c: In function =91mount_call=92:
>>> usr/kinit/nfsmount/mount.c:179: error: =91MNTPROC_MNT=92 undeclared
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c:179: error: (Each undeclared identifier
>>> is reported only once
>>> usr/kinit/nfsmount/mount.c:179: error: for each function it
>>> appears in.)
>>> usr/kinit/nfsmount/mount.c: In function =91mount_v2=92:
>>> usr/kinit/nfsmount/mount.c:211: error: =91MNTPROC_MNT=92 undeclared
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c: In function =91umount_v2=92:
>>> usr/kinit/nfsmount/mount.c:226: error: =91MNTPROC_UMNT=92 undeclare=
d
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c: In function =91mount_v3=92:
>>> usr/kinit/nfsmount/mount.c:232: error: =91MNTPROC_MNT=92 undeclared
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c: In function =91umount_v3=92:
>>> usr/kinit/nfsmount/mount.c:251: error: =91MNTPROC_UMNT=92 undeclare=
d
>>> (first use in this function)
>>> make[4]: *** [usr/kinit/nfsmount/mount.o] Error 1
>>> make[3]: *** [usr/kinit/nfsmount] Error 2
>>> make[2]: *** [all] Error 2
>>> make[1]: *** [klibc] Error 2
>>> make[1]: Leaving directory `/home/maks/src/klibc-latest'
>
> we might still define those for ourselve, let's see..

That makes sense to me as an immediate fix.

However, the kernel has its own NFS mount client (the piece that =20
handles rpcbind query and obtaining the root file handle), and you can =
=20
pass a C string of mount options to the kernel with mount(2). Perhaps =
=20
in the long term, you might consider replacing the specialized code in =
=20
klibc with simply passing the server, export path, and mount options =20
right to the kernel and let it do the work. This should work with any =
=20
kernel later than 2.6.23.

I'm happy to help with any questions.

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com


2009-08-18 13:16:13

by maximilian attems

[permalink] [raw]
Subject: Re: nfs MNT include cleanup

On Tue, Aug 18, 2009 at 08:45:49AM -0400, Chuck Lever wrote:
>
> However, the kernel has its own NFS mount client (the piece that
> handles rpcbind query and obtaining the root file handle), and you can
> pass a C string of mount options to the kernel with mount(2). Perhaps
> in the long term, you might consider replacing the specialized code in
> klibc with simply passing the server, export path, and mount options
> right to the kernel and let it do the work. This should work with any
> kernel later than 2.6.23.
>
> I'm happy to help with any questions.

sounds good indeed.
a quick one: can it do nfs v4 mounts?