summaryrefslogtreecommitdiffstats
path: root/liblvm/lvm_base.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2009-07-16 00:36:59 +0000
committerAlasdair Kergon <agk@redhat.com>2009-07-16 00:36:59 +0000
commitd917192f0010bf80315ba4aa4f6625e2a0ac60fd (patch)
tree337aeadcf3bd0d3c78156d8a6a67cdc573b1d9f4 /liblvm/lvm_base.c
parentd614646157d51b6a396519b73ec99e112e6948de (diff)
downloadlvm2-d917192f0010bf80315ba4aa4f6625e2a0ac60fd.tar.gz
lvm2-d917192f0010bf80315ba4aa4f6625e2a0ac60fd.tar.xz
lvm2-d917192f0010bf80315ba4aa4f6625e2a0ac60fd.zip
Add lvm_errno and lvm_errmsg to liblvm to obtain failure information.
Change create_toolcontext to still return an object if it fails part-way. Add EUNCLASSIFIED (-1) as the default LVM errno code.
Diffstat (limited to 'liblvm/lvm_base.c')
-rw-r--r--liblvm/lvm_base.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/liblvm/lvm_base.c b/liblvm/lvm_base.c
index 4fa85419..2414ed08 100644
--- a/liblvm/lvm_base.c
+++ b/liblvm/lvm_base.c
@@ -29,6 +29,10 @@ lvm_t lvm_create(const char *system_dir)
cmd = create_toolcontext(1, system_dir);
if (!cmd)
return NULL;
+
+ if (stored_errno())
+ return (lvm_t) cmd;
+
/*
* FIXME: if an non memory error occured, return the cmd (maybe some
* cleanup needed).
@@ -66,3 +70,13 @@ int lvm_reload_config(lvm_t libh)
/* FIXME: re-init locking needed here? */
return refresh_toolcontext((struct cmd_context *)libh);
}
+
+int lvm_errno(lvm_t libh)
+{
+ return stored_errno();
+}
+
+const char *lvm_errmsg(lvm_t libh)
+{
+ return stored_errmsg();
+}