Proper handle old systems.
authorMilan Broz <gmazyland@gmail.com>
Sat, 12 Mar 2011 21:31:41 +0000 (21:31 +0000)
committerMilan Broz <gmazyland@gmail.com>
Sat, 12 Mar 2011 21:31:41 +0000 (21:31 +0000)
git-svn-id: https://cryptsetup.googlecode.com/svn/trunk@447 36d66b0a-2a48-0410-832c-cd162a569da5

lib/setup.c
lib/utils_loop.h

index 909d5e3..33c17fe 100644 (file)
@@ -985,6 +985,7 @@ int crypt_init(struct crypt_device **cd, const char *device)
                                         "no free loop device found",
                                h->device ?: "");
                        if (!h->device) {
+                               log_err(NULL, _("Cannot find a free loopback device.\n"));
                                r = -ENOSYS;
                                goto bad;
                        }
@@ -992,7 +993,8 @@ int crypt_init(struct crypt_device **cd, const char *device)
                        /* Keep the loop open, dettached on last close. */
                        h->loop_fd = crypt_loop_attach(h->device, device, 0, &readonly);
                        if (h->loop_fd == -1) {
-                               log_dbg("Attaching loop failed.");
+                               log_err(NULL, _("Attaching loopback device failed "
+                                       "(loop device with autoclear flag is required).\n"));
                                r = -EINVAL;
                                goto bad;
                        }
index 54b533e..9b97a3e 100644 (file)
@@ -5,6 +5,10 @@
 
 #define LOOP_DEV_MAJOR 7
 
+#ifndef LO_FLAGS_AUTOCLEAR
+#define LO_FLAGS_AUTOCLEAR 4
+#endif
+
 char *crypt_loop_get_device(void);
 char *crypt_loop_backing_file(const char *loop);
 int crypt_loop_device(const char *loop);