- Subject: Re: [PATCH 0/6] fix some problems with v4root handling in mountd
- From: "J. Bruce Fields" <bfields@xxxxxxxxxxxx>
- Date: Tue, 24 Apr 2012 18:05:11 -0400
- Cc: Steve Dickson <steved@xxxxxxxxxx>, linux-nfs@xxxxxxxxxxxxxxx
- In-reply-to: <20120424054003.20130.16209.stgit@notabene.brown>
- References: <20120424054003.20130.16209.stgit@notabene.brown>
- User-agent: Mutt/1.5.20 (2009-06-14)
On Tue, Apr 24, 2012 at 03:46:38PM +1000, Neil Brown wrote:
> First I'd like to say that I love seeing comments that explain the
> code.. What way when the code does something different to the
> comment, I can be sure I'm on to something :-)
ACK to all of these from me, thanks!
--b.
>
> If I have exports:
>
> / *(rw,no_root_squash)
> /home 192.168.1.2(rw,no_root_squash)
>
> Then I want to export 'root' to everything (on my side of a firewall)
> but '/home' only to one machine.
> However this doesn't work for host 192.168.1.2.
> If I try to mount '/' with NFSv3, it fails.
> If I try to mount '/' with NFSv4, then it works but we only see
> "home" in the mounted "/".
>
> The problem is that the export of "/home" causes a V4ROOT export
> of "/" to be created for 192.168.1.2 and as MCL_SUBNETWORK comes
> before MCL_WILDCARD, the V4ROOT export wins and the other wildcard
> export isn't even tried.
>
> So the following patches:
> 1/ fix the NFSv4 mount case so that we really see '/' and not a pseudo
> '/'. This is the case where the comment says the right thing
> but the code doesn't.
>
> 2/ fix 'mountd' lookup for NFSv2/v3 so they successfully mount
> the real export, and don't fail because only the V4ROOT export
> was found,
>
> 3/ Fix a similar ordering problem in nfsd_fh. Without this an
> NFSv4 client might see the V4ROOT export for '/' rather than
> the explicitly exported export.
>
> 4/ Set a useful ttl on V4ROOT exports so they don't need to
> constantly be refreshed, an
>
> 5/ fix a buglet which didn't cause any of these problems but
> certainly looks wrong.
>
> Enjoy :-)
>
> NeilBrown
>
> ---
>
> Neil Brown (6):
> v4_root_add_parents: remove a possible buffer overflow.
> v4root: set the time-to-live for V4ROOT exports to the DEFAULT.
> v4set_root: force "fsid=0" for all exports of '/'
> nfsd_fh: if two exports are possible, choose the one without V4ROOT
> auth_authenticate_newcache: prefer non-V4ROOT export over V4ROOT exports.
> lookup_export: really prefer nonV4ROOT exports.
>
>
> utils/mountd/auth.c | 7 +++----
> utils/mountd/cache.c | 21 +++++++++++++++++----
> utils/mountd/v4root.c | 12 ++++++++++--
> 3 files changed, 30 insertions(+), 10 deletions(-)
>
> --
> Signature
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux USB Development]
[Linux Media Development]
[Video for Linux]
[Linux NILFS]
[Linux Audio Users]
[Photo]
[Yosemite Info]
[Yosemite Photos]
[POF Sucks]
[Linux Kernel]
[Linux SCSI]
[XFree86]