+Index: linux-2.6.16.i686/fs/block_dev.c
+===================================================================
+--- linux-2.6.16.i686.orig/fs/block_dev.c
++++ linux-2.6.16.i686/fs/block_dev.c
+@@ -763,6 +763,7 @@ int blkdev_put(struct block_device *bdev
+ blkdev_put(bdev->bd_contains);
+ }
+ bdev->bd_contains = NULL;
++ dev_clear_rdonly(bdev);
+ }
+ unlock_kernel();
+ up(&bdev->bd_sem);