Index: uspace/srv/bd/hr/raid1.c
===================================================================
--- uspace/srv/bd/hr/raid1.c	(revision 13ada526b7e33d1825b72e049bc6fdae493201bc)
+++ uspace/srv/bd/hr/raid1.c	(revision e0622a6d55bb82ba2dad9fdd676ff9468861c206)
@@ -153,5 +153,4 @@
 
 	bool exp = true;
-
 	if (!atomic_compare_exchange_strong(&vol->state_dirty, &exp, false))
 		return;
@@ -330,7 +329,10 @@
 		return EIO;
 
-	if (!vol->data_dirty && type == HR_BD_WRITE) {
+	/* increment metadata counter only on first write */
+	bool exp = false;
+	if (type == HR_BD_WRITE &&
+	    atomic_compare_exchange_strong(&vol->data_dirty, &exp, true)) {
 		vol->meta_ops->inc_counter(vol);
-		vol->data_dirty = true;
+		vol->meta_ops->save(vol, WITH_STATE_CALLBACK);
 	}
 
@@ -497,4 +499,11 @@
 	fibril_rwlock_read_lock(&vol->extents_lock);
 
+	/* increment metadata counter only on first write */
+	bool exp = false;
+	if (atomic_compare_exchange_strong(&vol->data_dirty, &exp, true)) {
+		vol->meta_ops->inc_counter(vol);
+		vol->meta_ops->save(vol, WITH_STATE_CALLBACK);
+	}
+
 	hr_range_lock_t *rl = NULL;
 
