Switch on retry on device remove for libdevmapper.
authorMilan Broz <gmazyland@gmail.com>
Wed, 2 May 2012 12:17:34 +0000 (14:17 +0200)
committerMilan Broz <gmazyland@gmail.com>
Wed, 2 May 2012 12:18:04 +0000 (14:18 +0200)
ChangeLog
configure.in
lib/libdevmapper.c

index b073b73..3511fc1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
        * Fix loop mapping on readonly file.
        * Relax --shared test, allow mapping even for overlapping segments.
        * Support shared flag for LUKS devices (dangerous).
+       * Switch on retry on device remove for libdevmapper.
 
 2012-04-09  Milan Broz  <gmazyland@gmail.com>
        * Fix header check to support old (cryptsetup 1.0.0) header alignment. (1.4.0)
index 40cf066..43c607f 100644 (file)
@@ -166,6 +166,7 @@ LIBS=$saved_LIBS
 
 LIBS="$LIBS $DEVMAPPER_LIBS"
 AC_CHECK_DECLS([dm_task_secure_data], [], [], [#include <libdevmapper.h>])
+AC_CHECK_DECLS([dm_task_retry_remove], [], [], [#include <libdevmapper.h>])
 AC_CHECK_DECLS([DM_UDEV_DISABLE_DISK_RULES_FLAG], [have_cookie=yes], [have_cookie=no], [#include <libdevmapper.h>])
 if test "x$enable_udev" = xyes; then
        if test "x$have_cookie" = xno; then
index 804403d..1997c13 100644 (file)
@@ -295,6 +295,11 @@ static int _dm_simple(int task, const char *name, int udev_wait)
        if (name && !dm_task_set_name(dmt, name))
                goto out;
 
+#if HAVE_DECL_DM_TASK_RETRY_REMOVE
+       /* Used only in DM_DEVICE_REMOVE */
+       if (name && !dm_task_retry_remove(dmt))
+               goto out;
+#endif
        if (udev_wait && !_dm_task_set_cookie(dmt, &cookie, 0))
                goto out;