diff options
Diffstat (limited to 'xlators/nfs/server/src/nfs-common.c')
| -rw-r--r-- | xlators/nfs/server/src/nfs-common.c | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/xlators/nfs/server/src/nfs-common.c b/xlators/nfs/server/src/nfs-common.c index af37f6b264c..526918872d7 100644 --- a/xlators/nfs/server/src/nfs-common.c +++ b/xlators/nfs/server/src/nfs-common.c @@ -73,10 +73,11 @@ nfs_xlator_to_xlid (xlator_list_t *cl, xlator_t *xl)  xlator_t *  nfs_mntpath_to_xlator (xlator_list_t *cl, char *path)  { -        char            *volname = NULL; -        char            *volptr = NULL; -        size_t           pathlen; +        char            *volname  = NULL; +        char            *volptr   = NULL; +        size_t           pathlen  = -1;          xlator_t        *targetxl = NULL; +        int              i        = 0;          if ((!cl) || (!path))                  return NULL; @@ -89,10 +90,17 @@ nfs_mntpath_to_xlator (xlator_list_t *cl, char *path)          else                  volptr = &volname[0]; -        if (pathlen && volname[pathlen - 1] == '/') -                volname[pathlen - 1] = '\0'; +        for (i = 0; i < pathlen; i++) { +                if (volname[i] == '/') { +                        volname[i] = '\0'; +                        break; +                } +        }          while (cl) { +                gf_msg_trace (GF_NFS, 0, "Volptr: %s and cl->xlator->name: %s", +                              volptr, cl->xlator->name); +                  if (strcmp (volptr, cl->xlator->name) == 0) {                          targetxl = cl->xlator;                          break;  | 
