Index: uspace/srv/bd/hr/hr.c
===================================================================
--- uspace/srv/bd/hr/hr.c	(revision 68c966e1cb7a84eed42455def54ec97cf5279e73)
+++ uspace/srv/bd/hr/hr.c	(revision abc2c4b7a413ed555dcaacfbb6cfbc3a5f4930b0)
@@ -54,5 +54,4 @@
 
 loc_srv_t *hr_srv;
-fibril_mutex_t big_lock; /* for now */
 
 static fibril_mutex_t hr_volumes_lock;
@@ -206,4 +205,6 @@
 	}
 
+	fibril_mutex_initialize(&new_volume->lock);
+
 	rc = new_volume->hr_ops.create(new_volume);
 	if (rc != EOK)
@@ -389,6 +390,4 @@
 	}
 
-	fibril_mutex_initialize(&big_lock);
-
 	fibril_mutex_initialize(&hr_volumes_lock);
 	list_initialize(&hr_volumes);
Index: uspace/srv/bd/hr/raid0.c
===================================================================
--- uspace/srv/bd/hr/raid0.c	(revision 68c966e1cb7a84eed42455def54ec97cf5279e73)
+++ uspace/srv/bd/hr/raid0.c	(revision abc2c4b7a413ed555dcaacfbb6cfbc3a5f4930b0)
@@ -52,5 +52,4 @@
 #include "var.h"
 
-extern fibril_mutex_t big_lock;
 extern loc_srv_t *hr_srv;
 
@@ -112,5 +111,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	left = cnt;
@@ -125,5 +124,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -144,5 +143,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	left = cnt;
@@ -158,5 +157,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -177,5 +176,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	left = cnt;
@@ -191,5 +190,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
Index: uspace/srv/bd/hr/raid1.c
===================================================================
--- uspace/srv/bd/hr/raid1.c	(revision 68c966e1cb7a84eed42455def54ec97cf5279e73)
+++ uspace/srv/bd/hr/raid1.c	(revision abc2c4b7a413ed555dcaacfbb6cfbc3a5f4930b0)
@@ -51,5 +51,4 @@
 #include "var.h"
 
-extern fibril_mutex_t big_lock;
 extern loc_srv_t *hr_srv;
 
@@ -99,5 +98,5 @@
 	hr_add_ba_offset(vol, &ba);
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	for (i = 0; i < vol->dev_no; i++) {
@@ -107,5 +106,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -125,5 +124,5 @@
 	hr_add_ba_offset(vol, &ba);
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	for (i = 0; i < vol->dev_no; i++) {
@@ -133,5 +132,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -151,5 +150,5 @@
 	hr_add_ba_offset(vol, &ba);
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	for (i = 0; i < vol->dev_no; i++) {
@@ -159,5 +158,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
Index: uspace/srv/bd/hr/raid4.c
===================================================================
--- uspace/srv/bd/hr/raid4.c	(revision 68c966e1cb7a84eed42455def54ec97cf5279e73)
+++ uspace/srv/bd/hr/raid4.c	(revision abc2c4b7a413ed555dcaacfbb6cfbc3a5f4930b0)
@@ -52,5 +52,4 @@
 #include "var.h"
 
-extern fibril_mutex_t big_lock;
 extern loc_srv_t *hr_srv;
 
@@ -157,5 +156,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	size_t left = cnt;
@@ -170,5 +169,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -189,5 +188,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	size_t left = cnt;
@@ -203,5 +202,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -222,5 +221,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	size_t left = cnt;
@@ -239,5 +238,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
Index: uspace/srv/bd/hr/raid5.c
===================================================================
--- uspace/srv/bd/hr/raid5.c	(revision 68c966e1cb7a84eed42455def54ec97cf5279e73)
+++ uspace/srv/bd/hr/raid5.c	(revision abc2c4b7a413ed555dcaacfbb6cfbc3a5f4930b0)
@@ -52,5 +52,4 @@
 #include "var.h"
 
-extern fibril_mutex_t big_lock;
 extern loc_srv_t *hr_srv;
 
@@ -169,5 +168,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	size_t left = cnt;
@@ -182,5 +181,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -201,5 +200,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	size_t left = cnt;
@@ -215,5 +214,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
@@ -234,5 +233,5 @@
 		return rc;
 
-	fibril_mutex_lock(&big_lock);
+	fibril_mutex_lock(&vol->lock);
 
 	size_t left = cnt;
@@ -251,5 +250,5 @@
 	}
 
-	fibril_mutex_unlock(&big_lock);
+	fibril_mutex_unlock(&vol->lock);
 	return rc;
 }
Index: uspace/srv/bd/hr/var.h
===================================================================
--- uspace/srv/bd/hr/var.h	(revision 68c966e1cb7a84eed42455def54ec97cf5279e73)
+++ uspace/srv/bd/hr/var.h	(revision abc2c4b7a413ed555dcaacfbb6cfbc3a5f4930b0)
@@ -56,4 +56,5 @@
 	bd_srvs_t hr_bds;
 	link_t lvolumes;
+	fibril_mutex_t lock;
 	char devname[HR_DEVNAME_LEN];
 	hr_extent_t extents[HR_MAXDEVS];
