All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Dickson <SteveD@redhat.com>
To: lioupayphone <lioupayphone@gmail.com>
Cc: linux-nfs <linux-nfs@vger.kernel.org>
Subject: Re: why there is a complex sync between /var/lib/nfs/etab in user-mode and  export_table in kernel mode?
Date: Thu, 18 Dec 2008 10:51:46 -0500	[thread overview]
Message-ID: <494A7192.9080900@RedHat.com> (raw)
In-Reply-To: <200812181433568806030@gmail.com>

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...

steved.


  reply	other threads:[~2008-12-18 15:53 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 [this message]
2008-12-19 14:50 ` Re: why there is a complex sync between /var/lib/nfs/etab in user-modeand " lioupayphone
2008-12-22 17:14   ` 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=494A7192.9080900@RedHat.com \
    --to=steved@redhat.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=lioupayphone@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.