diff --git a/pkg/cephfs/nodeserver.go b/pkg/cephfs/nodeserver.go index 78c3e1bbb..4abcb6754 100644 --- a/pkg/cephfs/nodeserver.go +++ b/pkg/cephfs/nodeserver.go @@ -266,7 +266,8 @@ func (ns *NodeServer) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpu return nil, status.Error(codes.Internal, err.Error()) } - if err = os.Remove(targetPath); err != nil { + err = os.Remove(targetPath) + if err != nil && !os.IsNotExist(err) { return nil, status.Error(codes.Internal, err.Error()) } diff --git a/pkg/cephfs/volumemounter.go b/pkg/cephfs/volumemounter.go index ff007013a..a78ae6282 100644 --- a/pkg/cephfs/volumemounter.go +++ b/pkg/cephfs/volumemounter.go @@ -321,6 +321,10 @@ func bindMount(ctx context.Context, from, to string, readOnly bool, mntOptions [ func unmountVolume(ctx context.Context, mountPoint string) error { if err := execCommandErr(ctx, "umount", mountPoint); err != nil { + if strings.Contains(err.Error(), fmt.Sprintf("exit status 32: umount: %s: not mounted", mountPoint)) || + strings.Contains(err.Error(), "No such file or directory") { + return nil + } return err } diff --git a/pkg/util/nodecache.go b/pkg/util/nodecache.go index 364dc607c..b76107453 100644 --- a/pkg/util/nodecache.go +++ b/pkg/util/nodecache.go @@ -152,7 +152,7 @@ func (nc *NodeCache) Delete(identifier string) error { file := path.Join(nc.BasePath, nc.CacheDir, identifier+".json") err := os.Remove(file) if err != nil { - if err == os.ErrNotExist { + if os.IsNotExist(err) { klog.V(4).Infof("node-cache: cannot delete missing metadata storage file %s, assuming it's already deleted", file) return nil }