Marcus Meissner
0621383d81
update to lvm2-2.02.111 OBS-URL: https://build.opensuse.org/request/show/251781 OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=104
51 lines
1.2 KiB
Diff
51 lines
1.2 KiB
Diff
---
|
|
lib/activate/activate.c | 30 ++++++++++++++++++++++++++++++
|
|
1 file changed, 30 insertions(+)
|
|
|
|
--- LVM2.2.02.98.orig/lib/activate/activate.c
|
|
+++ LVM2.2.02.98/lib/activate/activate.c
|
|
@@ -569,6 +569,26 @@ int module_present(struct cmd_context *c
|
|
return ret;
|
|
}
|
|
|
|
+/* 0 on not running, 1 on running */
|
|
+static int check_cmirrord(void)
|
|
+{
|
|
+ int fd;
|
|
+ int ret = 0;
|
|
+ struct flock lock;
|
|
+ if (( fd = open("/var/run/cmirrord.pid", O_WRONLY)) >= 0)
|
|
+ {
|
|
+ lock.l_type = F_WRLCK;
|
|
+ lock.l_start = 0;
|
|
+ lock.l_whence = SEEK_SET;
|
|
+ lock.l_len = 0;
|
|
+ if (fcntl(fd, F_SETLK, &lock) < 0) {
|
|
+ ret = 1;
|
|
+ }
|
|
+ close(fd);
|
|
+ }
|
|
+ return ret;
|
|
+}
|
|
+
|
|
int target_present(struct cmd_context *cmd, const char *target_name,
|
|
int use_modprobe)
|
|
{
|
|
@@ -577,6 +597,16 @@ int target_present(struct cmd_context *c
|
|
if (!activation())
|
|
return 0;
|
|
|
|
+ if (!strncmp(target_name, "log-userspace", 13)) {
|
|
+ /*
|
|
+ When the target_name is log-userspace, it also means
|
|
+ we need cmirrord daemon running. It doesn't work alone.
|
|
+ */
|
|
+ if (!check_cmirrord())
|
|
+ log_error("cmirrord is required, but not running now.");
|
|
+ return_0;
|
|
+ }
|
|
+
|
|
#ifdef MODPROBE_CMD
|
|
if (use_modprobe) {
|
|
if (target_version(target_name, &maj, &min, &patchlevel))
|