summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WHATS_NEW_DM1
-rw-r--r--configure.in18
-rw-r--r--libdm/libdm-common.c19
-rw-r--r--tools/dmsetup.c9
-rw-r--r--tools/lvmcmdline.c4
5 files changed, 9 insertions, 42 deletions
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 0485b6c4..8716794a 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,5 +1,6 @@
Version 1.02.46 -
================================
+ Strictly require libudev if udev_sync is used.
Add support for ioctl's DM_UEVENT_GENERATED_FLAG.
Version 1.02.45 - 9th March 2010
diff --git a/configure.in b/configure.in
index 2c052a6a..aafce08e 100644
--- a/configure.in
+++ b/configure.in
@@ -650,6 +650,7 @@ UDEV_SYNC=$enableval, UDEV_SYNC=no)
AC_MSG_RESULT($UDEV_SYNC)
if test x$UDEV_SYNC = xyes; then
+ AC_CHECK_LIB(udev, udev_queue_get_udev_is_active, UDEV_LIBS="-ludev", AC_MSG_ERROR(bailing out... libudev library is required))
AC_DEFINE([UDEV_SYNC_SUPPORT], 1, [Define to 1 to enable synchronisation with udev processing.])
fi
@@ -660,23 +661,6 @@ UDEV_RULES=$enableval, UDEV_RULES=$UDEV_SYNC)
AC_MSG_RESULT($UDEV_RULES)
################################################################################
-dnl -- Check for libudev's udev_queue_get_udev_is_active function when udev synchronisation is enabled
-
-if test x$UDEV_SYNC = xyes; then
- AC_CHECK_LIB(udev, udev_queue_get_udev_is_active, HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE=yes,
- HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE=no)
-
- if test x$HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE = xyes; then
- AC_DEFINE([HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE], 1,
- [Define to 1 if libudev's udev_queue_get_udev_is_active function is available.])
- UDEV_LIBS="-ludev"
- else
- UDEV_LIBS=
- AC_MSG_WARN(It won't be possible to get udev state. We will assume that udev is not running.)
- fi
-fi
-
-################################################################################
dnl -- Compatibility mode
AC_ARG_ENABLE(compat, [ --enable-compat Enable support for old device-mapper versions],
DM_COMPAT=$enableval, DM_COMPAT=no)
diff --git a/libdm/libdm-common.c b/libdm/libdm-common.c
index 0a616e04..2f5faa37 100644
--- a/libdm/libdm-common.c
+++ b/libdm/libdm-common.c
@@ -29,11 +29,9 @@
# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/sem.h>
-#ifdef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
# define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE
# include <libudev.h>
#endif
-#endif
#ifdef linux
# include <linux/fs.h>
@@ -922,16 +920,6 @@ int dm_udev_wait(uint32_t cookie)
static int _check_udev_is_running(void)
{
-
-# ifndef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
-
- log_debug("Could not get udev state because libudev library "
- "was not found and it was not compiled in. "
- "Assuming udev is not running.");
- return 0;
-
-# else /* HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE */
-
struct udev *udev;
struct udev_queue *udev_queue;
int r;
@@ -956,9 +944,6 @@ static int _check_udev_is_running(void)
bad:
log_error("Could not get udev state. Assuming udev is not running.");
return 0;
-
-# endif /* HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE */
-
}
void dm_udev_set_sync_support(int sync_with_udev)
@@ -1170,8 +1155,10 @@ int dm_udev_create_cookie(uint32_t *cookie)
{
int semid;
- if (!dm_udev_get_sync_support())
+ if (!dm_udev_get_sync_support()) {
+ *cookie = 0;
return 1;
+ }
return _udev_notify_sem_create(cookie, &semid);
}
diff --git a/tools/dmsetup.c b/tools/dmsetup.c
index 69fa1287..46f269b4 100644
--- a/tools/dmsetup.c
+++ b/tools/dmsetup.c
@@ -45,11 +45,9 @@
# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/sem.h>
-#ifdef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
# define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE
# include <libudev.h>
#endif
-#endif
/* FIXME Unused so far */
#undef HAVE_SYS_STATVFS_H
@@ -931,12 +929,10 @@ static int _udevcookies(int argc __attribute((unused)), char **argv __attribute(
#else /* UDEV_SYNC_SUPPORT */
static int _set_up_udev_support(const char *dev_dir)
{
-#ifdef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
struct udev *udev;
const char *udev_dev_dir;
size_t udev_dev_dir_len;
int dirs_diff;
-#endif
const char *env;
if (_switches[NOUDEVSYNC_ARG])
@@ -955,7 +951,6 @@ static int _set_up_udev_support(const char *dev_dir)
" defined by --udevcookie option.",
_udev_cookie);
-#ifdef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
if (!(udev = udev_new()) ||
!(udev_dev_dir = udev_get_dev_path(udev)) ||
!*udev_dev_dir) {
@@ -995,7 +990,6 @@ static int _set_up_udev_support(const char *dev_dir)
}
udev_unref(udev);
-#endif
return 1;
}
@@ -1007,7 +1001,8 @@ static int _udevcreatecookie(int argc, char **argv,
if (!dm_udev_create_cookie(&cookie))
return 0;
- printf("0x%08" PRIX32 "\n", cookie);
+ if (cookie)
+ printf("0x%08" PRIX32 "\n", cookie);
return 1;
}
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 69e2c873..fea9b278 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -42,7 +42,7 @@ extern char *optarg;
# define OPTIND_INIT 1
#endif
-#ifdef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
+#ifdef UDEV_SYNC_SUPPORT
# define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE
# include <libudev.h>
#endif
@@ -919,7 +919,7 @@ static void _apply_settings(struct cmd_context *cmd)
static int _set_udev_checking(struct cmd_context *cmd)
{
-#ifdef HAVE_UDEV_QUEUE_GET_UDEV_IS_ACTIVE
+#ifdef UDEV_SYNC
struct udev *udev;
const char *udev_dev_dir;
size_t udev_dev_dir_len;