fix: ufs filetype miss and get_status error#242
Conversation
Signed-off-by: swj <1186093704@qq.com>
| None => self.cv.get_status(path).await, | ||
| Some((ufs_path, mount)) => mount.ufs.get_status(&ufs_path).await, | ||
| Some((ufs_path, mount)) => { | ||
| if mount.info.cv_path == path.path() { |
There was a problem hiding this comment.
This destroys the semantics of transparent transmission. Even if you want to access the root directory of the mount point, you still need to access ufs directly.
There was a problem hiding this comment.
For ufs mount point, it is created on the cv filesystem, when detecting the mount point path, get status results should come from cv, not ufs. It's a bug fix
There was a problem hiding this comment.
In Curvine, a mount point is simply a virtual directory mapped directly to the UFS. All metadata access must be transparently passed to the UFS.
If you need to view files in Curvine, you can do so by setting enable_unified to false.
There was a problem hiding this comment.
When I set enable_unified to true, the ufs mount point is created on cv filesystem, For fuse, need to lookup the ufs mount point first, and then fuse can lookup next level. When I mount the s3 bucket on the cv path, the ufs root dir can't be found through ufs directly, so there must be a special handle.
| match self.get_mount(path).await? { | ||
| None => self.cv.get_status_bytes(path).await, | ||
| Some((ufs_path, mount)) => mount.ufs.get_status_bytes(&ufs_path).await, | ||
| Some((ufs_path, mount)) => { |
There was a problem hiding this comment.
This destroys the semantics of transparent transmission. Even if you want to access the root directory of the mount point, you still need to access ufs directly.
No description provided.