]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libmount: don't prepare update for empty mtab/utab on umount
authorKarel Zak <kzak@redhat.com>
Tue, 26 Feb 2013 13:17:42 +0000 (14:17 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 26 Feb 2013 13:17:42 +0000 (14:17 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
libmount/src/context.c

index 2e2a161dd009e225dca852d2daccf40b598d7644..614d3f3b5514092aa6f4557ea67d9864d2b1e522 100644 (file)
@@ -1676,14 +1676,21 @@ int mnt_context_prepare_update(struct libmnt_context *cxt)
                                cxt->syscall_status));
                return 0;
        }
+
        if (!cxt->update) {
+               const char *name = cxt->mtab_writable ? cxt->mtab_path : cxt->utab_path;
+
+               if (cxt->action == MNT_ACT_UMOUNT && is_file_empty(name)) {
+                       DBG(CXT, mnt_debug_h(cxt,
+                               "skip update: umount, no table"));
+                       return 0;
+               }
+
                cxt->update = mnt_new_update();
                if (!cxt->update)
                        return -ENOMEM;
 
-               mnt_update_set_filename(cxt->update,
-                               cxt->mtab_writable ? cxt->mtab_path : cxt->utab_path,
-                               !cxt->mtab_writable);
+               mnt_update_set_filename(cxt->update, name, !cxt->mtab_writable);
        }
 
        if (cxt->action == MNT_ACT_UMOUNT)