[dm-devel] Re: [RFC 3/3] dm: v4 ioctl interface

Joe Thornber thornber at sistina.com
Wed Jul 2 06:02:01 UTC 2003


dm_swap_table() will now fail for a table with no targets.
--- diff/drivers/md/dm.c	2003-07-01 15:36:42.000000000 +0100
+++ source/drivers/md/dm.c	2003-07-02 11:53:22.000000000 +0100
@@ -664,10 +664,10 @@
 	md->map = t;
 
 	size = dm_table_get_size(t);
-	set_capacity(md->disk, size);
-	if (size == 0)
-		return 0;
+	if (!size)
+		return -EINVAL;
 
+	set_capacity(md->disk, size);
 	dm_table_event_callback(md->map, event_callback, md);
 
 	dm_table_get(t);
@@ -759,8 +759,10 @@
 
 	__unbind(md);
 	r = __bind(md, table);
-	if (r)
+	if (r) {
+		up_write(&md->lock);
 		return r;
+	}
 
 	up_write(&md->lock);
 	return 0;




More information about the dm-devel mailing list