summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/upas/fs/plan9.c12
1 files changed, 7 insertions, 5 deletions
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){