diff --git a/src/filelock.c b/src/filelock.c index f5e4fb85966..2f880d10d2d 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -521,7 +521,7 @@ lock_if_free (clasher, lfname) lock_info_type *clasher; register char *lfname; { - if (lock_file_1 (lfname, 0) == 0) + while (lock_file_1 (lfname, 0) == 0) { int locker; @@ -537,7 +537,7 @@ lock_if_free (clasher, lfname) else if (locker == 1) return 1; /* Someone else has it. */ - return -1; /* Something's wrong. */ + /* We deleted a stale lock; try again to lock the file. */ } return 0; }