Message ID | 1859750321.23735105.1408945864304.JavaMail.zimbra@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 2014-08-25 at 01:51 -0400, Xiong Zhou wrote: > When export root dir(/) via nfs, and mount a particular dir under root, eg > /nfsexport, there will be defect double slash output in /proc/mounts, like > localhost://nfsexport. While this patch change it to localhost:/nfsexport. > > Signed-off-by: Xiong Zhou <xzhou@redhat.com> > --- > fs/nfs/namespace.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c > index b5a0afc..24f954e 100644 > --- a/fs/nfs/namespace.c > +++ b/fs/nfs/namespace.c > @@ -98,7 +98,7 @@ rename_retry: > return end; > } > namelen = strlen(base); > - if (flags & NFS_PATH_CANONICAL) { > + if ((flags & NFS_PATH_CANONICAL) || *end == '/') { > /* Strip off excess slashes in base string */ > while (namelen > 0 && base[namelen - 1] == '/') > namelen--; I think this makes sense, though I'm not sure I completely understand this function. :-/ Ben.
On Mon, Aug 25, 2014 at 5:07 PM, Ben Hutchings <ben@decadent.org.uk> wrote: > On Mon, 2014-08-25 at 01:51 -0400, Xiong Zhou wrote: >> When export root dir(/) via nfs, and mount a particular dir under root, eg >> /nfsexport, there will be defect double slash output in /proc/mounts, like >> localhost://nfsexport. While this patch change it to localhost:/nfsexport. >> >> Signed-off-by: Xiong Zhou <xzhou@redhat.com> >> --- >> fs/nfs/namespace.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c >> index b5a0afc..24f954e 100644 >> --- a/fs/nfs/namespace.c >> +++ b/fs/nfs/namespace.c >> @@ -98,7 +98,7 @@ rename_retry: >> return end; >> } >> namelen = strlen(base); >> - if (flags & NFS_PATH_CANONICAL) { >> + if ((flags & NFS_PATH_CANONICAL) || *end == '/') { >> /* Strip off excess slashes in base string */ >> while (namelen > 0 && base[namelen - 1] == '/') >> namelen--; > > I think this makes sense, though I'm not sure I completely understand > this function. :-/ > It breaks the function's guarantee concerning NFS_PATH_CANONICAL; that "if unset, the original name is returned verbatim".
diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c index b5a0afc..24f954e 100644 --- a/fs/nfs/namespace.c +++ b/fs/nfs/namespace.c @@ -98,7 +98,7 @@ rename_retry: return end; } namelen = strlen(base); - if (flags & NFS_PATH_CANONICAL) { + if ((flags & NFS_PATH_CANONICAL) || *end == '/') { /* Strip off excess slashes in base string */ while (namelen > 0 && base[namelen - 1] == '/') namelen--;
When export root dir(/) via nfs, and mount a particular dir under root, eg /nfsexport, there will be defect double slash output in /proc/mounts, like localhost://nfsexport. While this patch change it to localhost:/nfsexport. Signed-off-by: Xiong Zhou <xzhou@redhat.com> --- fs/nfs/namespace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)