[dm-devel] device-mapper/lib/ioctl libdm-iface.c

agk at sourceware.org agk at sourceware.org
Wed Dec 5 16:24:41 UTC 2007


CVSROOT:	/cvs/dm
Module name:	device-mapper
Changes by:	agk at sourceware.org	2007-12-05 16:24:41

Modified files:
	lib/ioctl      : libdm-iface.c 

Log message:
	work out device name to use for read ahead request

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/device-mapper/lib/ioctl/libdm-iface.c.diff?cvsroot=dm&r1=1.49&r2=1.50

--- device-mapper/lib/ioctl/libdm-iface.c	2007/12/03 22:48:36	1.49
+++ device-mapper/lib/ioctl/libdm-iface.c	2007/12/05 16:24:41	1.50
@@ -922,7 +922,29 @@
 
 uint32_t dm_task_get_read_ahead(const struct dm_task *dmt, uint32_t *read_ahead)
 {              
-	return get_dev_node_read_ahead(dmt->dev_name, read_ahead);
+	const char *dev_name;
+
+	*read_ahead = 0;
+
+#ifdef DM_COMPAT
+	/* Not supporting this */
+        if (_dm_version == 1)
+                return 1;
+#endif  
+
+        if (!dmt->dmi.v4 || !(dmt->dmi.v4->flags & DM_EXISTS_FLAG))
+		return 0;
+
+	if (*dmt->dmi.v4->name)
+		dev_name = dmt->dmi.v4->name;
+	else if (dmt->dev_name)
+		dev_name = dmt->dev_name;
+	else {
+		log_error("Get read ahead request failed: device name unrecorded.");
+		return 0;
+	}
+
+	return get_dev_node_read_ahead(dev_name, read_ahead);
 }
 
 const char *dm_task_get_name(const struct dm_task *dmt)




More information about the dm-devel mailing list