* [PATCH] mountd: regression in crossmounts
@ 2013-03-23 14:32 Steve Dickson
2013-03-25 14:18 ` Steve Dickson
2013-03-25 18:13 ` J. Bruce Fields
0 siblings, 2 replies; 7+ messages in thread
From: Steve Dickson @ 2013-03-23 14:32 UTC (permalink / raw)
To: Linux NFS Mailing list
commit 8e2fb3fc cause a regression in mount export
that are on different local file system.
Exports like (all on different filesystems)
/home *(rw,fsid=0,crossmnt)
/home/fs1 *(rw,crossmnt)
/home/fs1/fs2/fs3 *(rw,nohide)
and then a mount of the root 'mount /home /mnt'
would end up mounting /home/fs1/fs2/fs3 not /home
Reverting the logic of commit 8e2fb3fc until
a better solution can be found for the original
problem.
Signed-off-by: Steve Dickson <steved@redhat.com>
---
utils/mountd/cache.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index c8aa46f..978698d 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -371,8 +371,11 @@ export_matches(nfs_export *exp, char *dom, char *path, struct addrinfo *ai)
static bool subexport(struct exportent *e1, struct exportent *e2)
{
char *p1 = e1->e_path, *p2 = e2->e_path;
+ size_t l2 = strlen(p2);
+
return e2->e_flags & NFSEXP_CROSSMOUNT
- && is_subdirectory(p1, p2);
+ && strncmp(p1, p2, l2) == 0
+ && p1[l2] == '/';
}
struct parsed_fsid {
--
1.8.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] mountd: regression in crossmounts
2013-03-23 14:32 [PATCH] mountd: regression in crossmounts Steve Dickson
@ 2013-03-25 14:18 ` Steve Dickson
2013-03-25 18:13 ` J. Bruce Fields
1 sibling, 0 replies; 7+ messages in thread
From: Steve Dickson @ 2013-03-25 14:18 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing list
On 23/03/13 10:32, Steve Dickson wrote:
> commit 8e2fb3fc cause a regression in mount export
> that are on different local file system.
> Exports like (all on different filesystems)
>
> /home *(rw,fsid=0,crossmnt)
> /home/fs1 *(rw,crossmnt)
> /home/fs1/fs2/fs3 *(rw,nohide)
>
> and then a mount of the root 'mount /home /mnt'
> would end up mounting /home/fs1/fs2/fs3 not /home
>
> Reverting the logic of commit 8e2fb3fc until
> a better solution can be found for the original
> problem.
>
> Signed-off-by: Steve Dickson <steved@redhat.com>
Committed...
steved.
> ---
> utils/mountd/cache.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
> index c8aa46f..978698d 100644
> --- a/utils/mountd/cache.c
> +++ b/utils/mountd/cache.c
> @@ -371,8 +371,11 @@ export_matches(nfs_export *exp, char *dom, char *path, struct addrinfo *ai)
> static bool subexport(struct exportent *e1, struct exportent *e2)
> {
> char *p1 = e1->e_path, *p2 = e2->e_path;
> + size_t l2 = strlen(p2);
> +
> return e2->e_flags & NFSEXP_CROSSMOUNT
> - && is_subdirectory(p1, p2);
> + && strncmp(p1, p2, l2) == 0
> + && p1[l2] == '/';
> }
>
> struct parsed_fsid {
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] mountd: regression in crossmounts
2013-03-23 14:32 [PATCH] mountd: regression in crossmounts Steve Dickson
2013-03-25 14:18 ` Steve Dickson
@ 2013-03-25 18:13 ` J. Bruce Fields
2013-03-25 20:22 ` Steve Dickson
1 sibling, 1 reply; 7+ messages in thread
From: J. Bruce Fields @ 2013-03-25 18:13 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing list
On Sat, Mar 23, 2013 at 10:32:29AM -0400, Steve Dickson wrote:
> commit 8e2fb3fc cause a regression in mount export
> that are on different local file system.
> Exports like (all on different filesystems)
>
> /home *(rw,fsid=0,crossmnt)
> /home/fs1 *(rw,crossmnt)
> /home/fs1/fs2/fs3 *(rw,nohide)
>
> and then a mount of the root 'mount /home /mnt'
> would end up mounting /home/fs1/fs2/fs3 not /home
That's strange.
> Reverting the logic of commit 8e2fb3fc until
> a better solution can be found for the original
> problem.
I can't figure out why the patch below would help. The only change I
can see is to the way that an export of "/" would be handled.
--b.
>
>
> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
> utils/mountd/cache.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
> index c8aa46f..978698d 100644
> --- a/utils/mountd/cache.c
> +++ b/utils/mountd/cache.c
> @@ -371,8 +371,11 @@ export_matches(nfs_export *exp, char *dom, char *path, struct addrinfo *ai)
> static bool subexport(struct exportent *e1, struct exportent *e2)
> {
> char *p1 = e1->e_path, *p2 = e2->e_path;
> + size_t l2 = strlen(p2);
> +
> return e2->e_flags & NFSEXP_CROSSMOUNT
> - && is_subdirectory(p1, p2);
> + && strncmp(p1, p2, l2) == 0
> + && p1[l2] == '/';
> }
>
> struct parsed_fsid {
> --
> 1.8.1.4
>
> --
> 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] mountd: regression in crossmounts
2013-03-25 18:13 ` J. Bruce Fields
@ 2013-03-25 20:22 ` Steve Dickson
2013-03-25 21:27 ` J. Bruce Fields
0 siblings, 1 reply; 7+ messages in thread
From: Steve Dickson @ 2013-03-25 20:22 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Linux NFS Mailing list
On 25/03/13 14:13, J. Bruce Fields wrote:
> On Sat, Mar 23, 2013 at 10:32:29AM -0400, Steve Dickson wrote:
>> commit 8e2fb3fc cause a regression in mount export
>> that are on different local file system.
>> Exports like (all on different filesystems)
>>
>> /home *(rw,fsid=0,crossmnt)
>> /home/fs1 *(rw,crossmnt)
>> /home/fs1/fs2/fs3 *(rw,nohide)
>>
>> and then a mount of the root 'mount /home /mnt'
>> would end up mounting /home/fs1/fs2/fs3 not /home
>
> That's strange.
Yeah... I had this guy reporting from day one that the
latest nfs-utils broke his export world...
>
>> Reverting the logic of commit 8e2fb3fc until
>> a better solution can be found for the original
>> problem.
>
> I can't figure out why the patch below would help. The only change I
> can see is to the way that an export of "/" would be handled.
The reason I didn't debug this further was I did not know how to
reproduce the original problem the patch was trying to fix...
steved.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] mountd: regression in crossmounts
2013-03-25 20:22 ` Steve Dickson
@ 2013-03-25 21:27 ` J. Bruce Fields
2013-03-25 23:36 ` J. Bruce Fields
0 siblings, 1 reply; 7+ messages in thread
From: J. Bruce Fields @ 2013-03-25 21:27 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing list
On Mon, Mar 25, 2013 at 04:22:21PM -0400, Steve Dickson wrote:
>
>
> On 25/03/13 14:13, J. Bruce Fields wrote:
> > On Sat, Mar 23, 2013 at 10:32:29AM -0400, Steve Dickson wrote:
> >> commit 8e2fb3fc cause a regression in mount export
> >> that are on different local file system.
> >> Exports like (all on different filesystems)
> >>
> >> /home *(rw,fsid=0,crossmnt)
> >> /home/fs1 *(rw,crossmnt)
> >> /home/fs1/fs2/fs3 *(rw,nohide)
> >>
> >> and then a mount of the root 'mount /home /mnt'
> >> would end up mounting /home/fs1/fs2/fs3 not /home
> >
> > That's strange.
> Yeah... I had this guy reporting from day one that the
> latest nfs-utils broke his export world...
>
> >
> >> Reverting the logic of commit 8e2fb3fc until
> >> a better solution can be found for the original
> >> problem.
> >
> > I can't figure out why the patch below would help. The only change I
> > can see is to the way that an export of "/" would be handled.
> The reason I didn't debug this further was I did not know how to
> reproduce the original problem the patch was trying to fix...
Could you remind me where the bug report for this is?
The patch reverted here seems obviously correct to me, so I'm concerned.
--b.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] mountd: regression in crossmounts
2013-03-25 21:27 ` J. Bruce Fields
@ 2013-03-25 23:36 ` J. Bruce Fields
2013-03-27 13:06 ` Steve Dickson
0 siblings, 1 reply; 7+ messages in thread
From: J. Bruce Fields @ 2013-03-25 23:36 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing list
On Mon, Mar 25, 2013 at 05:27:36PM -0400, J. Bruce Fields wrote:
> On Mon, Mar 25, 2013 at 04:22:21PM -0400, Steve Dickson wrote:
> >
> >
> > On 25/03/13 14:13, J. Bruce Fields wrote:
> > > On Sat, Mar 23, 2013 at 10:32:29AM -0400, Steve Dickson wrote:
> > >> commit 8e2fb3fc cause a regression in mount export
> > >> that are on different local file system.
> > >> Exports like (all on different filesystems)
> > >>
> > >> /home *(rw,fsid=0,crossmnt)
> > >> /home/fs1 *(rw,crossmnt)
> > >> /home/fs1/fs2/fs3 *(rw,nohide)
> > >>
> > >> and then a mount of the root 'mount /home /mnt'
> > >> would end up mounting /home/fs1/fs2/fs3 not /home
> > >
> > > That's strange.
> > Yeah... I had this guy reporting from day one that the
> > latest nfs-utils broke his export world...
> >
> > >
> > >> Reverting the logic of commit 8e2fb3fc until
> > >> a better solution can be found for the original
> > >> problem.
> > >
> > > I can't figure out why the patch below would help. The only change I
> > > can see is to the way that an export of "/" would be handled.
> > The reason I didn't debug this further was I did not know how to
> > reproduce the original problem the patch was trying to fix...
>
> Could you remind me where the bug report for this is?
Oh, right, it was https://bugzilla.redhat.com/show_bug.cgi?id=909882
I'm not seeing why you think this helps.
--b.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] mountd: regression in crossmounts
2013-03-25 23:36 ` J. Bruce Fields
@ 2013-03-27 13:06 ` Steve Dickson
0 siblings, 0 replies; 7+ messages in thread
From: Steve Dickson @ 2013-03-27 13:06 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Linux NFS Mailing list
On 25/03/13 19:36, J. Bruce Fields wrote:
> On Mon, Mar 25, 2013 at 05:27:36PM -0400, J. Bruce Fields wrote:
>> On Mon, Mar 25, 2013 at 04:22:21PM -0400, Steve Dickson wrote:
>>>
>>>
>>> On 25/03/13 14:13, J. Bruce Fields wrote:
>>>> On Sat, Mar 23, 2013 at 10:32:29AM -0400, Steve Dickson wrote:
>>>>> commit 8e2fb3fc cause a regression in mount export
>>>>> that are on different local file system.
>>>>> Exports like (all on different filesystems)
>>>>>
>>>>> /home *(rw,fsid=0,crossmnt)
>>>>> /home/fs1 *(rw,crossmnt)
>>>>> /home/fs1/fs2/fs3 *(rw,nohide)
>>>>>
>>>>> and then a mount of the root 'mount /home /mnt'
>>>>> would end up mounting /home/fs1/fs2/fs3 not /home
>>>>
>>>> That's strange.
>>> Yeah... I had this guy reporting from day one that the
>>> latest nfs-utils broke his export world...
>>>
>>>>
>>>>> Reverting the logic of commit 8e2fb3fc until
>>>>> a better solution can be found for the original
>>>>> problem.
>>>>
>>>> I can't figure out why the patch below would help. The only change I
>>>> can see is to the way that an export of "/" would be handled.
>>> The reason I didn't debug this further was I did not know how to
>>> reproduce the original problem the patch was trying to fix...
>>
>> Could you remind me where the bug report for this is?
>
> Oh, right, it was https://bugzilla.redhat.com/show_bug.cgi?id=909882
>
> I'm not seeing why you think this helps.
Because it does... ;-)
https://bugzilla.redhat.com/show_bug.cgi?id=909882#c10
https://admin.fedoraproject.org/updates/FEDORA-2013-4396/nfs-utils-1.2.7-5.fc18
What I would like to is how to reproduce the original problem so
we can fix it without creating this regression....
steved.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-03-27 13:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-23 14:32 [PATCH] mountd: regression in crossmounts Steve Dickson
2013-03-25 14:18 ` Steve Dickson
2013-03-25 18:13 ` J. Bruce Fields
2013-03-25 20:22 ` Steve Dickson
2013-03-25 21:27 ` J. Bruce Fields
2013-03-25 23:36 ` J. Bruce Fields
2013-03-27 13:06 ` Steve Dickson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).