|
@ -436,18 +436,19 @@ func (dir *Dir) removeOneFile(req *fuse.RemoveRequest) error { |
|
|
|
|
|
|
|
|
func (dir *Dir) removeFolder(req *fuse.RemoveRequest) error { |
|
|
func (dir *Dir) removeFolder(req *fuse.RemoveRequest) error { |
|
|
|
|
|
|
|
|
|
|
|
dirFullPath := dir.FullPath() |
|
|
glog.V(3).Infof("remove directory entry: %v", req) |
|
|
glog.V(3).Infof("remove directory entry: %v", req) |
|
|
ignoreRecursiveErr := true // ignore recursion error since the OS should manage it
|
|
|
ignoreRecursiveErr := true // ignore recursion error since the OS should manage it
|
|
|
err := filer_pb.Remove(dir.wfs, dir.FullPath(), req.Name, true, false, ignoreRecursiveErr, false, []int32{dir.wfs.signature}) |
|
|
|
|
|
|
|
|
err := filer_pb.Remove(dir.wfs, dirFullPath, req.Name, true, true, ignoreRecursiveErr, false, []int32{dir.wfs.signature}) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
glog.V(0).Infof("remove %s/%s: %v", dir.FullPath(), req.Name, err) |
|
|
|
|
|
|
|
|
glog.V(0).Infof("remove %s/%s: %v", dirFullPath, req.Name, err) |
|
|
if strings.Contains(err.Error(), "non-empty") { |
|
|
if strings.Contains(err.Error(), "non-empty") { |
|
|
return fuse.EEXIST |
|
|
return fuse.EEXIST |
|
|
} |
|
|
} |
|
|
return fuse.ENOENT |
|
|
return fuse.ENOENT |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
t := util.NewFullPath(dir.FullPath(), req.Name) |
|
|
|
|
|
|
|
|
t := util.NewFullPath(dirFullPath, req.Name) |
|
|
dir.wfs.metaCache.DeleteEntry(context.Background(), t) |
|
|
dir.wfs.metaCache.DeleteEntry(context.Background(), t) |
|
|
dir.wfs.fsNodeCache.DeleteFsNode(t) |
|
|
dir.wfs.fsNodeCache.DeleteFsNode(t) |
|
|
|
|
|
|
|
|