[lvm-devel] [PATCH] Add configure option to select default run directory base and prepare for early /run use
Zdenek Kabelac
zkabelac at redhat.com
Fri Oct 21 10:55:30 UTC 2011
Dne 21.10.2011 11:50, Peter Rajnoha napsal(a):
> On systemd-enabled systems the /run is writeable and it's accessible early on
> boot so we don't need to use --sysinit anymore on early boot's vgchange call
> (the --sysint is just a shortcut for --ignorelockingfailure, --ignoremonitoring,
> --poll n and setting the LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES).
>
> This patch adds a new configure option "--with-default-run-dir-base" with which
> it's possible to change the run directory base for all directories/files that
> need to be moved to /run in one go easily.
>
> This patch also removes some hardcoded defines (in dmeventd.h and dm-event.socket
> files used for systemd).
>
> The patch also changes the dependencies a bit (in Fedora, but the same logic
> applies anywhere):
>
> originally:
>
> <dm-event.socket>
> ...
> fedora-wait-storage.service
> fedora-storage-init.service (calling vgchange -a y --sysinit)
> dm-event.service
> lvm2-monitor.service
>
> changing to:
>
> <dm-event.socket>
> ...
> fedora-wait-storage.service
> dm-event.service
> fedora-storage-init.service (calling vgchange -a y, without --sysinit!!!)
> lvm2-monitor.service (this is just for proper shutdown now since the dmevent
> registration will happen within the vgchange -a y call
> in previous step)
>
>
> (For FIFO-based activation, the fifos are already prepared and hence the
> dm-event service could be spawned already)
>
> Once we have this patch upstream and in the distro, we can remove the --sysinit
> from the vgchange call.
>
> Peter
> ---
>
> configure.in | 29 +++++++++++++++++++-------
> daemons/dmeventd/dmeventd.h | 4 +-
> lib/misc/configure.h.in | 3 ++
> make.tmpl.in | 1 +
> scripts/dm_event_systemd_red_hat.service.in | 4 +-
> scripts/dm_event_systemd_red_hat.socket | 11 ----------
> scripts/dm_event_systemd_red_hat.socket.in | 11 ++++++++++
> 7 files changed, 40 insertions(+), 23 deletions(-)
>
> diff --git a/configure.in b/configure.in
> index 5275b95..26eb268 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -425,6 +425,17 @@ AC_ARG_WITH(ocfdir,
> OCFDIR=$withval, OCFDIR='${prefix}/lib/ocf/resource.d/lvm2')
>
> fi
> @@ -1214,9 +1225,9 @@ fi
>
> AH_TEMPLATE(DEFAULT_RUN_DIR, [Name of default run directory.])
> AC_ARG_WITH(default-run-dir,
> - [ --with-default-run-dir=DIR Default run directory [[/var/run/lvm]] ],
> + [ --with-default-run-dir=DIR Default run directory [[RDIR/lvm]] ],
> [ DEFAULT_RUN_DIR="$withval" ],
> - [ DEFAULT_RUN_DIR="/var/run/lvm" ])
> + [ DEFAULT_RUN_DIR="$DEFAULT_RUN_DIR_BASE/lvm" ])
> AC_DEFINE_UNQUOTED(DEFAULT_RUN_DIR,["$DEFAULT_RUN_DIR"] )
>
I guess we should stay with just one place to configure /var/run
So I'd replace DEFAULT_RUN_DIR usage in the code with DEFAULT_RUN_DIR/lvm
and use just this define.
It should be backward compatible - so if someone configured it before - he
will just get there extra lvm subdir - but this shouldn't cause problems.
With double configuration for run dir it's getting way too complex.
Zdenek
More information about the lvm-devel
mailing list