Linux NFS development
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Ming Lei <Ming.Lei@riverbed.com>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: nfs4.1  pseudo filesystem
Date: Fri, 11 Oct 2013 14:29:42 -0400	[thread overview]
Message-ID: <20131011182942.GA22160@fieldses.org> (raw)
In-Reply-To: <2CE44BD3DBCF9541909CCB42F11CA3921C774298@sfo1exc-mbxp08.nbttech.com>

On Fri, Oct 11, 2013 at 04:51:29PM +0000, Ming Lei wrote:
> I want to cherry-pick a few subdirectories under say /root, but I don't want to specifies all these mount directories one by one just like NFSv2/3.

Well, you're kind of stuck enumerating them whether as exports or bind
mounts.

> Does pseudo filesystem in kernel v3.11 work well enough?

But it should work anyway, yes.

Oh, wait, I see the problem: it doesn't work well if you're exporting
subdirectories and not full filesystems.  Unless you do something
special at the export points  (e.g. mount --bind them over themselves),
knfsd doesn't know when you've crossed an export point.

--b.

> 
> Thanks
> Ming
> 
> -----Original Message-----
> From: J. Bruce Fields [mailto:bfields@fieldses.org] 
> Sent: Friday, October 11, 2013 9:30 AM
> To: Ming Lei
> Cc: linux-nfs@vger.kernel.org
> Subject: Re: nfs4.1 pseudo filesystem
> 
> On Thu, Oct 10, 2013 at 09:39:38PM +0000, Ming Lei wrote:
> > 
> > I want to set up the real directory as the root of the pseudo 
> > filesystem got exported from the server.
> 
> Unless you have some very good reason, I recommend just ignoring the pseudo filesystem.  Just export the directories you want to without using fsid=0 or bind mounts, just as you would with NFSv2/v3.  That will work fine on any recent server.
> 
> --b.
> 
> > Can I do it or I have to create /export empty directory as the root of 
> > the pseudo FS and then bind the real directories?
> > 
> > I have this test, both server and client running 3.11.0+:
> > 
> > On the server, there is /root directory.
> > [root@xxx ~] ls /root
> > anaconda-ks.cfg  disk    Documents  fs_log.old   install.log.syslog  Public
> > Desktop          disk.c  Downloads  install.log  linux3              
> > rpmbuild
> > [root@xxx ~]# ls /root/Downloads/linux-2.6.39.4
> > arch       crypto         firmware  Kconfig      Module.symvers  security
> > block      cscope.in.out  fs        kernel       net             sound
> > config     cscope.out     include   lib          README          tools
> > config-rh  cscope.po.out  init      MAINTAINERS  REPORTING-BUGS  usr
> > COPYING    Documentation  ipc       Makefile     samples         virt
> > CREDITS    drivers        Kbuild    mm           scripts
> > 
> > I have this /etc/exports on the server:
> > /root *(ro,fsid=0,crossmnt,no_root_squash)
> > /root/Downloads/linux-2.6.39.4 *(rw,no_root_squash,nohide) 
> > /root/linux3/Documentation/filesystems *(rw,no_root_squash,nohide)
> > 
> > [root@xxx ~]# cat /proc/net/rpc/nfsd.export/content #path 
> > domain(flags)
> > # /root/.gvfs	*()
> > /root	*
> > (ro,no_root_squash,sync,wdelay,crossmnt,no_subtree_check,fsid=0,uuid=4
> > 6bb42
> > 56:d3c84b6f:bbbfff3a:8b0d912c)
> > [root@xxx ~]# cat /proc/net/rpc/nfsd.fh/content #domain fsidtype fsid 
> > [path]
> > * 1 0x00000000 /root
> > 
> > 
> > On the client side, what I saw:
> > [root@xxx /]# mount -o vers=4.1 10.1.13.66:/ /mnt [root@xxx /]# cd 
> > /mnt [root@xxx mnt]# ls
> > anaconda-ks.cfg  disk    Documents  fs_log.old   install.log.syslog  Public
> > Desktop          disk.c  Downloads  install.log  linux3              
> > rpmbuild
> > [root@xxx mnt]# cd Downloads/linux-2.6.39.4 [root@xxx linux-2.6.39.4]# 
> > ls
> > arch       COPYING        cscope.out     firmware  ipc      lib          
> > Module.symvers  samples   tools
> > block      CREDITS        cscope.po.out  fs        Kbuild   MAINTAINERS  
> > net             scripts   usr
> > config     crypto         Documentation  include   Kconfig  Makefile     
> > README          security  virt
> > config-rh  cscope.in.out  drivers        init      kernel   mm           
> > REPORTING-BUGS  sound
> > [root@xxx linux-2.6.39.4]# rm REPORTING-BUGS
> > rm: remove regular file `REPORTING-BUGS'? y
> > rm: cannot remove `REPORTING-BUGS': Read-only file system
> > 
> > The question is:
> > Why can I delete this file even I specify the mountpoint 
> > /root/Downloads/linux-2.6.39.4 to allow RW access?
> > 
> > Thanks
> > Ming
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" 
> > in the body of a message to majordomo@vger.kernel.org More majordomo 
> > info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2013-10-11 18:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-10 21:39 nfs4.1 pseudo filesystem Ming Lei
2013-10-11 16:30 ` J. Bruce Fields
2013-10-11 16:51   ` Ming Lei
2013-10-11 18:29     ` J. Bruce Fields [this message]
2013-10-11 20:58       ` J. Bruce Fields
2013-10-11 21:04         ` Chuck Lever
2013-10-12  6:40 ` Wangminlan

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=20131011182942.GA22160@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Ming.Lei@riverbed.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