diff options
Diffstat (limited to 'cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c')
-rw-r--r-- | cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c index 525dceec1d..7de04038e7 100644 --- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c +++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c @@ -163,6 +163,9 @@ rtems_rfs_rtems_file_read (rtems_libio_t* iop, } } + if (read >= 0) + iop->offset = pos + read; + rtems_rfs_rtems_unlock (rtems_rfs_file_fs (file)); return read; @@ -220,7 +223,6 @@ rtems_rfs_rtems_file_write (rtems_libio_t* iop, rtems_rfs_rtems_unlock (rtems_rfs_file_fs (file)); return rtems_rfs_rtems_error ("file-write: write append seek", rc); } - iop->offset = pos; } while (count) @@ -251,6 +253,9 @@ rtems_rfs_rtems_file_write (rtems_libio_t* iop, } } + if (write >= 0) + iop->offset = pos + write; + rtems_rfs_rtems_unlock (rtems_rfs_file_fs (file)); return write; |