[klibc] nfs MNT include cleanup

Chuck Lever chuck.lever at oracle.com
Tue Aug 18 05:45:49 PDT 2009


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=libs/klibc/klibc.git;a=summary
>
>>> usr/kinit/nfsmount/mount.c: In function ‘mount_call’:
>>> usr/kinit/nfsmount/mount.c:179: error: ‘MNTPROC_MNT’ 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 ‘mount_v2’:
>>> usr/kinit/nfsmount/mount.c:211: error: ‘MNTPROC_MNT’ undeclared
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c: In function ‘umount_v2’:
>>> usr/kinit/nfsmount/mount.c:226: error: ‘MNTPROC_UMNT’ undeclared
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c: In function ‘mount_v3’:
>>> usr/kinit/nfsmount/mount.c:232: error: ‘MNTPROC_MNT’ undeclared
>>> (first use in this function)
>>> usr/kinit/nfsmount/mount.c: In function ‘umount_v3’:
>>> usr/kinit/nfsmount/mount.c:251: error: ‘MNTPROC_UMNT’ undeclared
>>> (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  
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.

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


More information about the klibc mailing list