On Mon, 2019-06-03 at 10:18 -0400, Steve Dickson wrote: > > On 5/31/19 12:02 PM, J. Bruce Fields wrote: > > On Tue, May 28, 2019 at 04:31:19PM -0400, Trond Myklebust wrote: > > > @@ -373,21 +390,22 @@ static char *next_mnt(void **v, char *p) > > > FILE *f; > > > struct mntent *me; > > > size_t l = strlen(p); > > > + char *mnt_dir = NULL; > > > + > > > if (*v == NULL) { > > > f = setmntent("/etc/mtab", "r"); > > > *v = f; > > > } else > > > f = *v; > > > - while ((me = getmntent(f)) != NULL && l > 1 && > > > - (strncmp(me->mnt_dir, p, l) != 0 || > > > - me->mnt_dir[l] != '/')) > > > - ; > > > - if (me == NULL) { > > > - endmntent(f); > > > - *v = NULL; > > > - return NULL; > > > + while ((me = getmntent(f)) != NULL && l > 1) { > > > + mnt_dir = nfsd_path_strip_root(me->mnt_dir); > > > + > > > + if (strncmp(mnt_dir, p, l) == 0 && mnt_dir[l] != '/') > > > + return mnt_dir; > > > > That should be "mnt_dir[l] == '/'", right? > Comment says > /* Iterate through /etc/mtab, finding mountpoints > * at or below a given path > */ > > So I don't think the actual '/' should returned, Trond? Yep. You're both right. I've got an incremental patch to fix this. -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx