Signed-off-by: Karel Zak <kzak@redhat.com>
if (lockdisk)
unlock_disk(i);
free(i->prog);
+ mnt_unref_fs(i->fs);
free(i);
return;
}
struct libmnt_fs *fs = mnt_new_fs();
if (fs && mnt_fs_set_source(fs, device) == 0 &&
- mnt_table_add_fs(fstab, fs) == 0)
+ mnt_table_add_fs(fstab, fs) == 0) {
+ mnt_unref_fs(fs);
return fs;
+ }
- mnt_free_fs(fs);
+ mnt_unref_fs(fs);
err(FSCK_EX_ERROR, _("failed to setup description for %s"), device);
}
s = find_fsck(prog);
if (s == NULL) {
warnx(_("%s: not found"), prog);
- free(inst);
+ free_instance(inst);
return ENOENT;
}
printf("\n");
}
+ mnt_ref_fs(fs);
inst->fs = fs;
inst->lock = -1;
pid = -1;
else if ((pid = fork()) < 0) {
warn(_("fork failed"));
- free(inst);
+ free_instance(inst);
return errno;
} else if (pid == 0) {
if (!interactive)