Minor code clean-up. The reason I broke this out into a separate patch is so people can check if I'm not missing anything... I don't see a reason to check 's->valid' separately anymore. RFC-by: Jonathan Brassow <jbrassow@xxxxxxxxxx> Index: linux-2.6/drivers/md/dm-snap.c =================================================================== --- linux-2.6.orig/drivers/md/dm-snap.c +++ linux-2.6/drivers/md/dm-snap.c @@ -740,20 +740,14 @@ static void pending_complete(struct dm_s struct bio *snapshot_bios = NULL; int error = 0; + down_write(&s->lock); if (!success) { /* Read/write error - snapshot is unusable */ - down_write(&s->lock); __invalidate_snapshot(s, -EIO); error = 1; goto out; } - down_write(&s->lock); - if (!s->valid) { - error = 1; - goto out; - } - /* * Check for conflicting reads. This is extremely improbable, * so msleep(1) is sufficient and there is no need for a wait queue. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel