summaryrefslogtreecommitdiffstats
path: root/cpukit/libblock/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libblock/src')
-rw-r--r--cpukit/libblock/src/bdbuf.c3
-rw-r--r--cpukit/libblock/src/blkdev-imfs.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/cpukit/libblock/src/bdbuf.c b/cpukit/libblock/src/bdbuf.c
index ad1112b517..de2cebd7be 100644
--- a/cpukit/libblock/src/bdbuf.c
+++ b/cpukit/libblock/src/bdbuf.c
@@ -2853,7 +2853,8 @@ rtems_bdbuf_gather_for_purge (rtems_chain_control *purge_list,
}
else
{
- while (*prev != NULL && cur == (*prev)->avl.right)
+ while (*prev != NULL
+ && (cur == (*prev)->avl.right || (*prev)->avl.right == NULL))
{
/* Up */
cur = *prev;
diff --git a/cpukit/libblock/src/blkdev-imfs.c b/cpukit/libblock/src/blkdev-imfs.c
index 86455930f6..c69542d531 100644
--- a/cpukit/libblock/src/blkdev-imfs.c
+++ b/cpukit/libblock/src/blkdev-imfs.c
@@ -75,6 +75,7 @@ static ssize_t rtems_blkdev_imfs_read(
}
if (remaining >= 0) {
+ iop->offset += count;
rv = (ssize_t) count;
} else {
errno = EIO;
@@ -134,6 +135,7 @@ static ssize_t rtems_blkdev_imfs_write(
}
if (remaining >= 0) {
+ iop->offset += count;
rv = (ssize_t) count;
} else {
errno = EIO;