src/t_mtab: Add error check for unlock_mtab()
authorCui Yue <cuiyue-fnst@cn.fujitsu.com>
Tue, 12 Feb 2019 11:12:30 +0000 (19:12 +0800)
committerEryu Guan <guaneryu@gmail.com>
Sat, 16 Feb 2019 10:10:33 +0000 (18:10 +0800)
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>
src/t_mtab.c

index fd85c6bdf6ca4dcd16e58f50c64e0b97acc8dfee..c0640a1951a4ceb0f9e36755ccc3c6c9df4c7443 100644 (file)
@@ -184,9 +184,15 @@ lock_mtab (void) {
 /* 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;
+               }
        }
 }