+static void ext4_bdif_lock(struct ext4_blockdev *bdev)
+{
+ if (!bdev->bdif->lock)
+ return;
+
+ int r = bdev->bdif->lock(bdev);
+ ext4_assert(r == EOK);
+}
+
+static void ext4_bdif_unlock(struct ext4_blockdev *bdev)
+{
+ if (!bdev->bdif->unlock)
+ return;
+
+ int r = bdev->bdif->unlock(bdev);
+ ext4_assert(r == EOK);
+}
+
+static int ext4_bdif_bread(struct ext4_blockdev *bdev, void *buf,
+ uint64_t blk_id, uint32_t blk_cnt)
+{
+ ext4_bdif_lock(bdev);
+ int r = bdev->bdif->bread(bdev, buf, blk_id, blk_cnt);
+ bdev->bdif->bread_ctr++;
+ ext4_bdif_unlock(bdev);
+ return r;
+}
+
+static int ext4_bdif_bwrite(struct ext4_blockdev *bdev, const void *buf,
+ uint64_t blk_id, uint32_t blk_cnt)
+{
+ ext4_bdif_lock(bdev);
+ int r = bdev->bdif->bwrite(bdev, buf, blk_id, blk_cnt);
+ bdev->bdif->bwrite_ctr++;
+ ext4_bdif_unlock(bdev);
+ return r;
+}
+