Zheng Zeng has uploaded this change for review.

View Change

Fix the issue of building pseudofs failure.

When there are two exports, their configurations are as follows:
EXPORT {
Export_Id = 2;
Path = /111/222;
Protocols = 3;
Access_Type = RW;
Squash = Root_Squash;
Pseudo = /111/222;
Attr_Expiration_Time = 0;
FSAL {
Name = CLOVE;
}
}

EXPORT {
Export_Id = 1;
Path = /111/222/333;
Protocols = 3,4;
Access_Type = RW;
Squash = Root_Squash;
Pseudo = /111/222/333;
Attr_Expiration_Time = 0;
FSAL {
Name = CLOVE;
}
}
When mounting the root directory of Pseudofs on the client,
the /111/222/333 directory cannot be seen.

The reason for this issue is that Pseudo = /111/222/333 is
not mounted to the root directory / of pseudofs.

To fix the issue, this patch establishes two rules:
(1) Ensure that when mounting a sub-export, its parent export
is already mounted to Pseudofs.
(2) When building pseudofs, mount the exports to Pseudofs
in order of the length of Pseudo, from shortest to longest.

After testing, the Pseudofs built according to these rules
meets the requirements. The issue has been fixed.

Change-Id: Iae83f4c81597512128f49bc11c536a20e9ee181d
Signed-off-by: izxl007 <zengzheng007@163.com>
---
M src/support/export_mgr.c
1 file changed, 28 insertions(+), 6 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/77/1203977/1

To view, visit change 1203977. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Iae83f4c81597512128f49bc11c536a20e9ee181d
Gerrit-Change-Number: 1203977
Gerrit-PatchSet: 1
Gerrit-Owner: Zheng Zeng <zengzheng007@163.com>