diff --git a/sys/src/cmd/upas/fs/plan9.c b/sys/src/cmd/upas/fs/plan9.c index 5fb477a2a..7bc2ad47b 100644 --- a/sys/src/cmd/upas/fs/plan9.c +++ b/sys/src/cmd/upas/fs/plan9.c @@ -182,11 +182,13 @@ retry: fd = open(mb->path, OREAD); if(fd < 0){ rerrstr(err, sizeof(err)); - if(strstr(err, "exclusive lock") != 0 && n++ < 20){ - sleep(500); /* wait for lock to go away */ - goto retry; - } - if(strstr(err, "exist") != 0){ + if(strstr(err, "file is locked") != nil + || strstr(err, "exclusive lock") != nil) + if(n++ < 20){ + sleep(500); /* wait for lock to go away */ + goto retry; + } + if(strstr(err, "exist") != nil){ tmp = s_copy(mb->path); s_append(tmp, ".tmp"); if(sysrename(s_to_c(tmp), mb->path) == 0){