From: Petr Rockai <prockai@redhat.com>
To: lvm-devel@redhat.com
Subject: [PATCH 02/13] Add lvm_create, lvm_destroy, lvm_reload_config() APIs.
Date: Tue, 03 Feb 2009 00:22:02 +0100 [thread overview]
Message-ID: <87pri077c5.fsf@eriador.mornfall.net> (raw)
In-Reply-To: <1233607809-1087-3-git-send-email-dwysocha@redhat.com> (Dave Wysochanski's message of "Mon, 2 Feb 2009 15:49:58 -0500")
Hi,
see comments inline.
Dave Wysochanski <dwysocha@redhat.com> writes:
> +++ b/lib/lvm2.c
> @@ -0,0 +1,70 @@
> +/*
> + * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
> + *
> + * This file is part of LVM2.
> + *
> + * This copyrighted material is made available to anyone wishing to use,
> + * modify, copy, or redistribute it subject to the terms and conditions
> + * of the GNU Lesser General Public License v.2.1.
> + *
> + * You should have received a copy of the GNU Lesser General Public License
> + * along with this program; if not, write to the Free Software Foundation,
> + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> + */
> +
> +#include "lvm2.h"
> +#include "lib.h"
> +#include "toolcontext.h"
> +#include "locking.h"
> +#include "metadata-exported.h"
> +#include "report.h"
> +
> +
> +lvm_handle_t lvm_create(const char *system_dir)
> +{
> + struct cmd_context *cmd;
> +
> + /* To be done:
> + * logging bound to handle
> + */
> +
> + /* create context */
> + cmd = create_toolcontext(1, system_dir);
> +
> + /* initilize remaining */
> + if (cmd) {
> + int locking_type;
> +
> + /* initilization from lvm_run_command */
> + init_error_message_produced(0);
> + sigint_clear();
> +
> + /* get locking type from config tree */
> + /* FIXME: config option needed? */
> + locking_type = find_config_tree_int(cmd, "global/locking_type",
> + 1);
I'm wondering if it would make sense to unify the code reading the default
locking type and the code reading the fallback options and such. As things are,
half of the configuration processing is done here and the other half inside
init_locking called below (cf lib/locking/locking.c, init_locking).
> +
> + /* initialize locking */
> + if (! init_locking(locking_type, cmd)) {
> + printf("Locking type %d initialisation failed.",
> + locking_type);
> + lvm_destroy((lvm_handle_t) cmd);
> + return NULL;
> + }
> + }
> +
> + return (lvm_handle_t) cmd;
I'm also wondering if the explicit cast is such a great idea afterall. (I know
this has been brought up before with my patches.) I would probably prefer to
see a comment saying /* lvm_handle_t is an alias for struct cmd_context * */ --
that way, when that fact changes, we will hopefully get a warning from the
compiler on all the places this is assumed (which might be suppressed by the
explicit cast). Or am I wrong on that count?
> +}
> +
> +
> +void lvm_destroy(lvm_handle_t libh)
> +{
> + destroy_toolcontext((struct cmd_context *)libh);
> + /* no error handling here */
> +}
> +
> +
> +int lvm_reload_config(lvm_handle_t libh)
> +{
> + return refresh_toolcontext((struct cmd_context *)libh);
> +}
Should this also cater for locking re-initialisation? I suppose if
configuration changed, so might have locking.
[snip lvm2.h changes, no comments]
[snip test.c changes, no comment either]
Yours,
Petr.
--
Peter Rockai | me()mornfall!net | prockai()redhat!com
http://blog.mornfall.net | http://web.mornfall.net
"In My Egotistical Opinion, most people's C programs should be
indented six feet downward and covered with dirt."
-- Blair P. Houghton on the subject of C program indentation
next prev parent reply other threads:[~2009-02-02 23:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-02 20:49 [PATCH 0/13] liblvm initialization, attribute, and object handling Dave Wysochanski
2009-02-02 20:49 ` [PATCH 01/13] Add system_dir to create_toolcontext() Dave Wysochanski
2009-02-02 20:49 ` [PATCH 02/13] Add lvm_create, lvm_destroy, lvm_reload_config() APIs Dave Wysochanski
2009-02-02 20:49 ` [PATCH 03/13] Move vg_t, lv_t, and pv_t from metadata-exported.h into lvm2.h Dave Wysochanski
2009-02-02 20:50 ` [PATCH 04/13] Add lvm_pv_name, lvm_vg_name, and lvm_lv_name accessors Dave Wysochanski
2009-02-02 20:50 ` [PATCH 05/13] Add lvm_vg_open() Dave Wysochanski
2009-02-02 20:50 ` [PATCH 06/13] Add lvm_vg_close() Dave Wysochanski
2009-02-02 20:50 ` [PATCH 07/13] Add lvm_vg_get_attr_list() libLVM API to return a list of VG attribute names Dave Wysochanski
2009-02-02 20:50 ` [PATCH 08/13] Add lvm_vg_get_attr_value() libLVM API to query to value of a VG attribute Dave Wysochanski
2009-02-02 20:50 ` [PATCH 09/13] Add lvm_lvs_in_vg() API Dave Wysochanski
2009-02-02 20:50 ` [PATCH 10/13] Add lvm_pvs_in_vg() Dave Wysochanski
2009-02-02 20:50 ` [PATCH 11/13] Add lvm_lv_get_attr_list() and lvm_lv_get_attr_value() Dave Wysochanski
2009-02-02 20:50 ` [PATCH 12/13] First cut at adding pv_obj_* APIs Dave Wysochanski
2009-02-02 20:50 ` [PATCH 13/13] Add test code Dave Wysochanski
2009-02-02 23:58 ` [PATCH 12/13] First cut at adding pv_obj_* APIs Petr Rockai
2009-02-13 11:23 ` Dave Wysochanski
2009-02-02 23:47 ` [PATCH 08/13] Add lvm_vg_get_attr_value() libLVM API to query to value of a VG attribute Petr Rockai
2009-02-13 11:30 ` Dave Wysochanski
2009-02-02 23:45 ` [PATCH 06/13] Add lvm_vg_close() Petr Rockai
2009-02-04 17:11 ` Dave Wysochanski
2009-02-04 20:27 ` Dave Wysochanski
2009-02-02 23:28 ` [PATCH 05/13] Add lvm_vg_open() Petr Rockai
2009-02-04 15:01 ` Dave Wysochanski
2009-02-02 23:25 ` [PATCH 03/13] Move vg_t, lv_t, and pv_t from metadata-exported.h into lvm2.h Petr Rockai
2009-02-04 14:57 ` Dave Wysochanski
2009-02-02 23:22 ` Petr Rockai [this message]
2009-02-03 0:44 ` [PATCH] Move locking_type reading inside init_locking() Dave Wysochanski
2009-02-03 1:12 ` [PATCH take2] Add lvm_create, lvm_destroy, lvm_reload_config() APIs Dave Wysochanski
2009-02-13 11:42 ` [PATCH 02/13] " Dave Wysochanski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pri077c5.fsf@eriador.mornfall.net \
--to=prockai@redhat.com \
--cc=lvm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.