When unlink() fails, that is, when the lock file is not deleted
successfully, variable we_created_lockfile is still set to 0.
On the next iteration, the 3 processes will not be able to
successfully create the lock file.
Signed-off-by: Cui Yue <cuiyue-fnst@cn.fujitsu.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
/* Remove lock file. */
void
unlock_mtab (void) {
+ int ret;
if (we_created_lockfile) {
- unlink (mounted_lock);
- we_created_lockfile = 0;
+ ret = unlink (mounted_lock);
+ if (ret) {
+ fprintf(stderr, "Cannot remove lock file: %s\n", strerror(errno));
+ exit(1);
+ } else {
+ we_created_lockfile = 0;
+ }
}
}