===================================================================
@@ -1407,10 +1407,11 @@ static int snapshot_status(struct dm_tar
unsigned sz = 0;
struct dm_snapshot *snap = ti->private;
- down_write(&snap->lock);
-
switch (type) {
case STATUSTYPE_INFO:
+
+ down_write(&snap->lock);
+
if (!snap->valid)
DMEMIT("Invalid");
else {
@@ -1429,6 +1430,9 @@ static int snapshot_status(struct dm_tar
else
DMEMIT("Unknown");
}
+
+ up_write(&snap->lock);
+
break;
case STATUSTYPE_TABLE:
@@ -1443,8 +1447,6 @@ static int snapshot_status(struct dm_tar
break;
}
- up_write(&snap->lock);
-
return 0;
}