Linux NFS development
 help / color / mirror / Atom feed
From: "lioupayphone" <lioupayphone@gmail.com>
To: "Steve Dickson" <SteveD@redhat.com>
Cc: "linux-nfs" <linux-nfs@vger.kernel.org>
Subject: Re: Re: why there is a complex sync between /var/lib/nfs/etab in user-modeand  export_table in kernel mode?
Date: Fri, 19 Dec 2008 22:50:27 +0800	[thread overview]
Message-ID: <200812192250226871692@gmail.com> (raw)
In-Reply-To: 200812181433568806030@gmail.com

Hello, Steve Dickson.
you wrote at 23:54:00 on 2008-12-18 :
>"Re: why there is a complex sync between /var/lib/nfs/etab in user-modeand  export_table in kernel mode?"
>lioupayphone wrote:
>> Hello, linux-nfs
>> 
>> i found that an entry in /var/lib/nfs/etab (etab for abbr)  was written to exprot_table of kernel-mode via a proc-file when a client requests mnt this entry.                                       
>> when the entry in export_table of kernel-mode was expired (eg : reached its expiration time), an upcall machanism is able to make sure that the newly entry from etab of user-mode was written to export_table of kernel-mode. ie, the entry in export_table of kernel-mode was updated by the one of user-mode.
>> 
>> if the content listed above is true, i think linux nfs is too complex. and why not remove the etab from user-mode?
>> in a word, i think it is easy to just maintain export_table of kernel-mode. we can directly scan /etc/exports and make up a complete export-entry, then write it to the export_table of kernel-mode. the entries in export_table of kernel-mode would never be expired unless we explicitly remove it from the export_table of kernel-mode (a proc MUST be provided for meeting this requirement).
>> 
>> when the server is rebooted and nfsd proc-filesystem is ready, just re-do "scanning the /etc/exports and make up complete export-entries, then write them into export_table of kernel-mode".  
>> 
>> i aims to 1) remove the complex upcall machanism ,  2) get rid of the couple of /var/lib/nfs/etab in user-mode and export_table in kernel-mode.
>> 
>> anyone can give me some suggestions? or points out what's wrong i am.
>The /var/lib/nfs/etab file is the way the exportfs command communicates 
>with the mountd daemon. 'exportfs -ar' causes the exports in /etc/exports
>to be parsed and written to the etab. When a mount request is received
>mountd reads the etab to build its internal export table. Ultimately
>when the mount is successful, the kernel writes the mount to
>/proc/net/rpc/nfsd.export/content.
>
>So that's how the etab fits in the grand scheme of things... 
>
>I believe what you are suggesting is simply pumping down
>all the exports in /etc/exports directly to the kernel.
>This ideas has been discussed and I believe the conclusion
>we came to was; why pump down thousands of exports that
>may or may not used. Dynamically building the kernel export
>data just seem to make more sense in our case...
>
>I hope this helps...
:-) thank you very much. i think your comments are very clear and very helpful for me.
but i still think rpc.mountd is somewhat complex. we all know that a daemon in user-mode is likely to be killed. rpc.mountd is no exception. once rpc.mountd was killed, there are no chance for the export_table to be updated via upcall.

It cannot be denied that putting the etab into kernel mode is wastful for memory. but i still think it is an easy  and stable method.

thanks again. 
:-)

>
>steved.
>

Best Regards!
lioupayphone


  parent reply	other threads:[~2008-12-19 14:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-18  6:34 why there is a complex sync between /var/lib/nfs/etab in user-mode and export_table in kernel mode? lioupayphone
2008-12-18 15:51 ` Steve Dickson
2008-12-19 14:50 ` lioupayphone [this message]
2008-12-22 17:14   ` Re: why there is a complex sync between /var/lib/nfs/etab in user-modeand " J. Bruce Fields

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200812192250226871692@gmail.com \
    --to=lioupayphone@gmail.com \
    --cc=SteveD@redhat.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox