From: Theodore Ts'o Date: Wed, 27 Aug 2008 03:56:00 +0000 (-0400) Subject: Remove use of devmapper library by the blkid library X-Git-Tag: v1.41.1~31 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=7515a7447836708241b2b30ca7d70d1257265e75;p=tools%2Fe2fsprogs.git Remove use of devmapper library by the blkid library The devmapper library is no longer needed given commit f4e89bcd. Signed-off-by: "Theodore Ts'o" --- diff --git a/MCONFIG.in b/MCONFIG.in index fba5fe3..554b5b5 100644 --- a/MCONFIG.in +++ b/MCONFIG.in @@ -68,16 +68,13 @@ MKINSTALLDIRS = @MKINSTALLDIRS@ # # Library definitions # -DEVMAPPER_LIBS = @DEVMAPPER_LIBS@ -STATIC_DEVMAPPER_LIBS = @STATIC_DEVMAPPER_LIBS@ - LIB = $(top_builddir)/lib LIBSS = $(LIB)/libss@LIB_EXT@ @DLOPEN_LIB@ LIBCOM_ERR = $(LIB)/libcom_err@LIB_EXT@ LIBE2P = $(LIB)/libe2p@LIB_EXT@ LIBEXT2FS = $(LIB)/libext2fs@LIB_EXT@ LIBUUID = $(LIB)/libuuid@LIB_EXT@ @SOCKET_LIB@ -LIBBLKID = $(LIB)/libblkid@LIB_EXT@ @STATIC_BLKID_DEVMAPPER_LIBS@ +LIBBLKID = $(LIB)/libblkid@LIB_EXT@ LIBINTL = @LIBINTL@ DEPLIBSS = $(LIB)/libss@LIB_EXT@ DEPLIBUUID = $(LIB)/libuuid@LIB_EXT@ @@ -88,7 +85,7 @@ STATIC_LIBCOM_ERR = $(LIB)/libcom_err@STATIC_LIB_EXT@ STATIC_LIBE2P = $(LIB)/libe2p@STATIC_LIB_EXT@ STATIC_LIBEXT2FS = $(LIB)/libext2fs@STATIC_LIB_EXT@ STATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ @SOCKET_LIB@ -STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ $(STATIC_DEVMAPPER_LIBS) +STATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ DEPSTATIC_LIBSS = $(LIB)/libss@STATIC_LIB_EXT@ DEPSTATIC_LIBUUID = $(LIB)/libuuid@STATIC_LIB_EXT@ DEPSTATIC_LIBBLKID = $(LIB)/libblkid@STATIC_LIB_EXT@ diff --git a/configure b/configure index cccc441..119e09c 100755 --- a/configure +++ b/configure @@ -691,12 +691,6 @@ FSCK_PROG FSCK_MAN E2INITRD_PROG E2INITRD_MAN -PKG_CONFIG -DEVMAPPER_REQ -DEVMAPPER_PC_LIBS -DEVMAPPER_LIBS -STATIC_DEVMAPPER_LIBS -STATIC_BLKID_DEVMAPPER_LIBS UUIDD_CMT GETTEXT_PACKAGE PACKAGE @@ -788,8 +782,7 @@ CFLAGS LDFLAGS LIBS CPPFLAGS -CPP -PKG_CONFIG' +CPP' # Initialize some variables set by options. @@ -1377,7 +1370,6 @@ Optional Features: --disable-resizer disable support of e2resize program --enable-fsck build fsck wrapper program --enable-e2initrd-helper build e2initrd-helper program - --enable-blkid-devmapper build with device-mapper support --disable-tls disable use of thread local support --disable-uuidd disable building the uuid daemon --disable-nls do not use Native Language Support @@ -1408,7 +1400,6 @@ Some influential environment variables: CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor - PKG_CONFIG path to pkg-config utility Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -4148,250 +4139,6 @@ fi -STATIC_BLKID_DEVMAPPER_LIBS='' -# Check whether --enable-blkid-devmapper was given. -if test "${enable_blkid_devmapper+set}" = set; then - enableval=$enable_blkid_devmapper; if test "$enableval" = "no" -then - { echo "$as_me:$LINENO: result: Disabling device-mapper support" >&5 -echo "${ECHO_T}Disabling device-mapper support" >&6; } - DEVMAPPER_REQ='' - DEVMAPPER_LIBS='' - STATIC_DEVMAPPER_LIBS='' -else - cat >>confdefs.h <<\_ACEOF -#define HAVE_DEVMAPPER 1 -_ACEOF - - { echo "$as_me:$LINENO: result: Enabling device-mapper support" >&5 -echo "${ECHO_T}Enabling device-mapper support" >&6; } - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } - PKG_CONFIG="" - fi - -fi - - if test -z "$PKG_CONFIG"; then - { { echo "$as_me:$LINENO: error: pkg-config not installed; please install it." >&5 -echo "$as_me: error: pkg-config not installed; please install it." >&2;} - { (exit 1); exit 1; }; } - fi - - { echo "$as_me:$LINENO: checking for dm_tree_create in -ldevmapper" >&5 -echo $ECHO_N "checking for dm_tree_create in -ldevmapper... $ECHO_C" >&6; } -if test "${ac_cv_lib_devmapper_dm_tree_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldevmapper $DEVMAPPER_LIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dm_tree_create (); -int -main () -{ -return dm_tree_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_devmapper_dm_tree_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_devmapper_dm_tree_create=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_devmapper_dm_tree_create" >&5 -echo "${ECHO_T}$ac_cv_lib_devmapper_dm_tree_create" >&6; } -if test $ac_cv_lib_devmapper_dm_tree_create = yes; then - DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`; - STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`; - DEVMAPPER_REQ="devmapper"; - DEVMAPPER_PC_LIBS="-ldevmapper" -else - { { echo "$as_me:$LINENO: error: device-mapper library not found" >&5 -echo "$as_me: error: device-mapper library not found" >&2;} - { (exit 1); exit 1; }; } -fi - - # work around stupid devmapper.pc bug in Debian - case "$STATIC_DEVMAPPER_LIBS" in - *pthread*) - ;; - *) - { echo "$as_me:$LINENO: WARNING: Working around Debian bug 390243..." >&5 -echo "$as_me: WARNING: Working around Debian bug 390243..." >&2;} - STATIC_DEVMAPPER_LIBS="-pthread $STATIC_DEVMAPPER_LIBS" - ;; - esac - if test "$E2_PKG_CONFIG_STATIC" = "--static"; then - DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS" - STATIC_BLKID_DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS" - fi -fi - -else - { echo "$as_me:$LINENO: result: Disabling device-mapper support by default" >&5 -echo "${ECHO_T}Disabling device-mapper support by default" >&6; } - -fi - - - - - - # Check whether --enable-tls was given. if test "${enable_tls+set}" = set; then enableval=$enable_tls; if test "$enableval" = "no" @@ -16226,12 +15973,6 @@ FSCK_PROG!$FSCK_PROG$ac_delim FSCK_MAN!$FSCK_MAN$ac_delim E2INITRD_PROG!$E2INITRD_PROG$ac_delim E2INITRD_MAN!$E2INITRD_MAN$ac_delim -PKG_CONFIG!$PKG_CONFIG$ac_delim -DEVMAPPER_REQ!$DEVMAPPER_REQ$ac_delim -DEVMAPPER_PC_LIBS!$DEVMAPPER_PC_LIBS$ac_delim -DEVMAPPER_LIBS!$DEVMAPPER_LIBS$ac_delim -STATIC_DEVMAPPER_LIBS!$STATIC_DEVMAPPER_LIBS$ac_delim -STATIC_BLKID_DEVMAPPER_LIBS!$STATIC_BLKID_DEVMAPPER_LIBS$ac_delim UUIDD_CMT!$UUIDD_CMT$ac_delim GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim PACKAGE!$PACKAGE$ac_delim @@ -16309,7 +16050,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 86; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 80; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.in b/configure.in index da224b4..dbec692 100644 --- a/configure.in +++ b/configure.in @@ -466,56 +466,6 @@ AC_MSG_RESULT([Building e2initrd helper by default]) ) AC_SUBST(E2INITRD_PROG) AC_SUBST(E2INITRD_MAN) -dnl handle --enable-blkid-devmapper -dnl -STATIC_BLKID_DEVMAPPER_LIBS='' -AC_ARG_ENABLE([blkid-devmapper], -[ --enable-blkid-devmapper build with device-mapper support], -[if test "$enableval" = "no" -then - AC_MSG_RESULT([Disabling device-mapper support]) - DEVMAPPER_REQ='' - DEVMAPPER_LIBS='' - STATIC_DEVMAPPER_LIBS='' -else - AC_DEFINE(HAVE_DEVMAPPER) - AC_MSG_RESULT([Enabling device-mapper support]) - - PKG_PROG_PKG_CONFIG() - - if test -z "$PKG_CONFIG"; then - AC_MSG_ERROR([pkg-config not installed; please install it.]) - fi - - AC_CHECK_LIB(devmapper, dm_tree_create, - [DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`; - STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`; - DEVMAPPER_REQ="devmapper"; - DEVMAPPER_PC_LIBS="-ldevmapper"], - [AC_MSG_ERROR([device-mapper library not found])], - [$DEVMAPPER_LIBS]) - # work around stupid devmapper.pc bug in Debian - case "$STATIC_DEVMAPPER_LIBS" in - *pthread*) - ;; - *) - AC_MSG_WARN([Working around Debian bug 390243...]) - STATIC_DEVMAPPER_LIBS="-pthread $STATIC_DEVMAPPER_LIBS" - ;; - esac - if test "$E2_PKG_CONFIG_STATIC" = "--static"; then - DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS" - STATIC_BLKID_DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS" - fi -fi] -, -AC_MSG_RESULT([Disabling device-mapper support by default]) -) -AC_SUBST(DEVMAPPER_REQ) -AC_SUBST(DEVMAPPER_PC_LIBS) -AC_SUBST(DEVMAPPER_LIBS) -AC_SUBST(STATIC_DEVMAPPER_LIBS) -AC_SUBST(STATIC_BLKID_DEVMAPPER_LIBS) dnl dnl dnl diff --git a/debian/control b/debian/control index bd7370f..e357e95 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: e2fsprogs Section: admin Priority: required Maintainer: Theodore Y. Ts'o -Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, dietlibc-dev [alpha amd64 arm hppa i386 ia64 mips mipsel powerpc ppc64 s390 sparc], libsepol1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libdevmapper-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libselinux1-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], debhelper (>= 4) +Build-Depends: texi2html (>= 1.76), gettext, texinfo, dc, pkg-config, dietlibc-dev [alpha amd64 arm hppa i386 ia64 mips mipsel powerpc ppc64 s390 sparc], debhelper (>= 4) Standards-Version: 3.8.0.0 Package: e2fsck-static diff --git a/debian/rules b/debian/rules index 92295e9..4175619 100755 --- a/debian/rules +++ b/debian/rules @@ -106,7 +106,6 @@ CCOPTS += -D__NO_STRING_INLINES endif ifeq (${DEB_HOST_ARCH_OS},linux) -DEVMAPPER = --enable-blkid-devmapper BUILD_STATIC = build-static E2FSCK_STATIC = ${staticbuilddir}/e2fsck/e2fsck.static else @@ -118,8 +117,7 @@ BF_CCOPTS = -Os -fomit-frame-pointer COMMON_CONF_FLAGS = \ --enable-elf-shlibs --infodir=/usr/share/info --enable-fsck -STD_CONF_FLAGS = --with-ccopts="${CCOPTS}" --enable-compression \ - ${DEVMAPPER} +STD_CONF_FLAGS = --with-ccopts="${CCOPTS}" --enable-compression BF_CONF_FLAGS = --with-ccopts="${CCOPTS} ${BF_CCOPTS}" \ --disable-nls --disable-imager \ diff --git a/lib/blkid/Makefile.in b/lib/blkid/Makefile.in index bf0012e..51d0c2a 100644 --- a/lib/blkid/Makefile.in +++ b/lib/blkid/Makefile.in @@ -37,7 +37,7 @@ ELF_SO_VERSION = 1 ELF_IMAGE = libblkid ELF_MYDIR = blkid ELF_INSTALL_DIR = $(root_libdir) -ELF_OTHER_LIBS = -L../.. -luuid $(DEVMAPPER_LIBS) +ELF_OTHER_LIBS = -L../.. -luuid BSDLIB_VERSION = 2.0 BSDLIB_IMAGE = libblkid diff --git a/lib/blkid/blkid.pc.in b/lib/blkid/blkid.pc.in index ff51782..fda7f92 100644 --- a/lib/blkid/blkid.pc.in +++ b/lib/blkid/blkid.pc.in @@ -6,7 +6,6 @@ includedir=@includedir@ Name: blkid Description: Block device id library Version: @E2FSPROGS_VERSION@ -Requires: uuid @DEVMAPPER_REQ@ +Requires: uuid Cflags: -I${includedir} Libs: -L${libdir} -lblkid -Libs.private: @DEVMAPPER_PC_LIBS@ diff --git a/lib/blkid/devname.c b/lib/blkid/devname.c index ec3cff3..48a1dcc 100644 --- a/lib/blkid/devname.c +++ b/lib/blkid/devname.c @@ -38,12 +38,6 @@ #include "blkidP.h" -#undef HAVE_DEVMAPPER - -#ifdef HAVE_DEVMAPPER -#include -#endif - /* * Find a dev struct in the cache by device name, if available. * @@ -120,10 +114,6 @@ blkid_dev blkid_get_dev(blkid_cache cache, const char *devname, int flags) return dev; } -#ifdef HAVE_DEVMAPPER -static int dm_device_is_leaf(const dev_t dev); -#endif - /* Directories where we will try to search for device names */ static const char *dirlist[] = { "/dev", "/devfs", "/devices", NULL }; @@ -142,10 +132,6 @@ static void probe_one(blkid_cache cache, const char *ptname, list_for_each_safe(p, pnext, &cache->bic_devs) { blkid_dev tmp = list_entry(p, struct blkid_struct_dev, bid_devs); -#ifdef HAVE_DEVMAPPER - if (!dm_device_is_leaf(devno)) - continue; -#endif if (tmp->bid_devno == devno) { if (only_if_new && !access(tmp->bid_name, F_OK)) return; @@ -202,183 +188,6 @@ set_pri: return; } -#ifdef HAVE_DEVMAPPER -static void dm_quiet_log(int level __BLKID_ATTR((unused)), - const char *file __BLKID_ATTR((unused)), - int line __BLKID_ATTR((unused)), - const char *f __BLKID_ATTR((unused)), ...) -{ - return; -} - -/* - * device-mapper support - */ -static int dm_device_has_dep(const dev_t dev, const char *name) -{ - struct dm_task *task; - struct dm_deps *deps; - struct dm_info info; - unsigned int i; - int ret = 0; - - task = dm_task_create(DM_DEVICE_DEPS); - if (!task) - goto out; - - if (!dm_task_set_name(task, name)) - goto out; - - if (!dm_task_run(task)) - goto out; - - if (!dm_task_get_info(task, &info)) - goto out; - - if (!info.exists) - goto out; - - deps = dm_task_get_deps(task); - if (!deps || deps->count == 0) - goto out; - - for (i = 0; i < deps->count; i++) { - dev_t dep_dev = deps->device[i]; - - if (dev == dep_dev) { - ret = 1; - goto out; - } - } - -out: - if (task) - dm_task_destroy(task); - - return ret; -} - -static int dm_device_is_leaf(const dev_t dev) -{ - struct dm_task *task; - struct dm_names *names; - unsigned int next = 0; - int n, ret = 1; - - dm_log_init(dm_quiet_log); - task = dm_task_create(DM_DEVICE_LIST); - if (!task) - goto out; - - dm_log_init(0); - - if (!dm_task_run(task)) - goto out; - - names = dm_task_get_names(task); - if (!names || !names->dev) - goto out; - - n = 0; - do { - names = (struct dm_names *) ((char *)names + next); - - if (dm_device_has_dep(dev, names->name)) - ret = 0; - - next = names->next; - } while (next); - -out: - if (task) - dm_task_destroy(task); - - return ret; -} - -static dev_t dm_get_devno(const char *name) -{ - struct dm_task *task; - struct dm_info info; - dev_t ret = 0; - - task = dm_task_create(DM_DEVICE_INFO); - if (!task) - goto out; - - if (!dm_task_set_name(task, name)) - goto out; - - if (!dm_task_run(task)) - goto out; - - if (!dm_task_get_info(task, &info)) - goto out; - - if (!info.exists) - goto out; - - ret = makedev(info.major, info.minor); - -out: - if (task) - dm_task_destroy(task); - - return ret; -} - -static void dm_probe_all(blkid_cache cache, int only_if_new) -{ - struct dm_task *task; - struct dm_names *names; - unsigned int next = 0; - int n; - - dm_log_init(dm_quiet_log); - task = dm_task_create(DM_DEVICE_LIST); - if (!task) - goto out; - dm_log_init(0); - - if (!dm_task_run(task)) - goto out; - - names = dm_task_get_names(task); - if (!names || !names->dev) - goto out; - - n = 0; - do { - int rc; - char *device = NULL; - dev_t dev = 0; - - names = (struct dm_names *) ((char *)names + next); - - rc = asprintf(&device, "mapper/%s", names->name); - if (rc < 0) - goto try_next; - - dev = dm_get_devno(names->name); - if (dev == 0) - goto try_next; - - if (!dm_device_is_leaf(dev)) - goto try_next; - - probe_one(cache, device, dev, BLKID_PRI_DM, only_if_new); - -try_next: - free(device); - next = names->next; - } while (next); - -out: - if (task) - dm_task_destroy(task); -} -#endif /* HAVE_DEVMAPPER */ - #define PROC_PARTITIONS "/proc/partitions" #define VG_DIR "/proc/lvm/VGs" @@ -532,9 +341,6 @@ static int probe_all(blkid_cache cache, int only_if_new) return 0; blkid_read_cache(cache); -#ifdef HAVE_DEVMAPPER - dm_probe_all(cache, only_if_new); -#endif evms_probe_all(cache, only_if_new); #ifdef VG_DIR lvm_probe_all(cache, only_if_new);