}
static int dotlock_delete(const char *path, const char *lock_suffix,
- const struct dotlock *dotlock)
+ const struct dotlock *dotlock, int check_mtime)
{
const char *lock_path;
struct stat st;
return 0;
}
- if (dotlock->mtime != st.st_mtime) {
+ if (dotlock->mtime != st.st_mtime && check_mtime) {
i_warning("Our dotlock file %s was modified (%s vs %s), "
"assuming it wasn't overridden", lock_path,
dec2str(dotlock->mtime), dec2str(st.st_mtime));
int file_unlock_dotlock(const char *path, const struct dotlock *dotlock)
{
- return dotlock_delete(path, DEFAULT_LOCK_SUFFIX, dotlock);
+ return dotlock_delete(path, DEFAULT_LOCK_SUFFIX, dotlock, TRUE);
}
int file_dotlock_open(const char *path,
dotlock.ino = st.st_ino;
dotlock.mtime = st.st_mtime;
- return dotlock_delete(path, lock_suffix, &dotlock);
+ return dotlock_delete(path, lock_suffix, &dotlock, FALSE);
}