diff options
| author | gkostka <kostka.grzegorz@gmail.com> | 2015-12-07 21:52:22 +0100 |
|---|---|---|
| committer | gkostka <kostka.grzegorz@gmail.com> | 2015-12-07 21:52:22 +0100 |
| commit | 06c35f48e36de717fd16e720705cdbbfac3a842a (patch) | |
| tree | d013566d46e079f236dc48d8f6134c744aaae65d | |
| parent | 9e8466622a31fed8113e9a01969f01a850f92cea (diff) | |
Add ph_blk_offset during every blockdev bread/bwrite
| -rw-r--r-- | lwext4/ext4_blockdev.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lwext4/ext4_blockdev.c b/lwext4/ext4_blockdev.c index 8597519..03d15eb 100644 --- a/lwext4/ext4_blockdev.c +++ b/lwext4/ext4_blockdev.c @@ -212,6 +212,7 @@ int ext4_blocks_get_direct(struct ext4_blockdev *bdev, void *buf, uint64_t lba, ext4_assert(bdev && buf); pba = (lba * bdev->lg_bsize) / bdev->bdif->ph_bsize; + pba += bdev->ph_blk_offset; pb_cnt = bdev->lg_bsize / bdev->bdif->ph_bsize; bdev->bread_ctr++; @@ -227,6 +228,7 @@ int ext4_blocks_set_direct(struct ext4_blockdev *bdev, const void *buf, ext4_assert(bdev && buf); pba = (lba * bdev->lg_bsize) / bdev->bdif->ph_bsize; + pba += bdev->ph_blk_offset; pb_cnt = bdev->lg_bsize / bdev->bdif->ph_bsize; bdev->bwrite_ctr++; @@ -250,7 +252,7 @@ int ext4_block_writebytes(struct ext4_blockdev *bdev, uint64_t off, if (!(bdev->bdif->ph_flags & EXT4_BDEV_INITIALIZED)) return EIO; - block_idx = off / bdev->bdif->ph_bsize; + block_idx = (off / bdev->bdif->ph_bsize) + bdev->ph_blk_offset; block_end = block_idx + len / bdev->bdif->ph_bsize; if (!(block_end < bdev->bdif->ph_bcnt)) @@ -322,7 +324,7 @@ int ext4_block_readbytes(struct ext4_blockdev *bdev, uint64_t off, void *buf, if (!(bdev->bdif->ph_flags & EXT4_BDEV_INITIALIZED)) return EIO; - block_idx = off / bdev->bdif->ph_bsize; + block_idx = (off / bdev->bdif->ph_bsize) + bdev->ph_blk_offset; block_end = block_idx + len / bdev->bdif->ph_bsize; if (!(block_end < bdev->bdif->ph_bcnt)) |
