From: Yongcheng Yang <yongcheng.yang@xxxxxxxxx> When unexport directory, it's possible that the specified path ends with a '/'. So we need to deal with it to find the matched entry. If not, there will be error like "Could not find '*:/some_path/' to unexport." Signed-off-by: Yongcheng Yang <yongcheng.yang@xxxxxxxxx> --- utils/exportfs/exportfs.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c index c7a79a6..a9151ff 100644 --- a/utils/exportfs/exportfs.c +++ b/utils/exportfs/exportfs.c @@ -405,8 +405,17 @@ unexportfs_parsed(char *hname, char *path, int verbose) hname = ai->ai_canonname; } + /* + * It's possible the specified path ends with a '/'. But + * the entry from exportlist won't has the trailing '/', + * so need to deal with it. + */ + size_t nlen = strlen(path); + while (path[nlen - 1] == '/') + nlen--; + for (exp = exportlist[htype].p_head; exp; exp = exp->m_next) { - if (path && strcmp(path, exp->m_export.e_path)) + if (path && strncmp(path, exp->m_export.e_path, nlen)) continue; if (htype != exp->m_client->m_type) continue; -- 2.1.0 -- 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