summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/src/exec/libfs/src/imfs/memfile.c10
-rw-r--r--c/src/lib/libc/memfile.c10
-rw-r--r--c/src/libfs/src/imfs/memfile.c10
-rw-r--r--cpukit/libfs/src/imfs/memfile.c10
4 files changed, 32 insertions, 8 deletions
diff --git a/c/src/exec/libfs/src/imfs/memfile.c b/c/src/exec/libfs/src/imfs/memfile.c
index 01aee443f3..eda9d6b4a1 100644
--- a/c/src/exec/libfs/src/imfs/memfile.c
+++ b/c/src/exec/libfs/src/imfs/memfile.c
@@ -145,10 +145,14 @@ int memfile_write(
)
{
IMFS_jnode_t *the_jnode;
+ int status;
the_jnode = iop->file_info;
- return IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ iop->size = the_jnode->info.file.size;
+
+ return status;
}
/*
@@ -191,7 +195,8 @@ int memfile_lseek(
if (IMFS_memfile_extend( the_jnode, iop->offset ))
set_errno_and_return_minus_one( ENOSPC );
- return 0;
+ iop->size = the_jnode->info.file.size;
+ return iop->offset;
}
/*
@@ -231,6 +236,7 @@ int memfile_ftruncate(
*/
the_jnode->info.file.size = length;
+ iop->size = the_jnode->info.file.size;
IMFS_update_atime( the_jnode );
diff --git a/c/src/lib/libc/memfile.c b/c/src/lib/libc/memfile.c
index 01aee443f3..eda9d6b4a1 100644
--- a/c/src/lib/libc/memfile.c
+++ b/c/src/lib/libc/memfile.c
@@ -145,10 +145,14 @@ int memfile_write(
)
{
IMFS_jnode_t *the_jnode;
+ int status;
the_jnode = iop->file_info;
- return IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ iop->size = the_jnode->info.file.size;
+
+ return status;
}
/*
@@ -191,7 +195,8 @@ int memfile_lseek(
if (IMFS_memfile_extend( the_jnode, iop->offset ))
set_errno_and_return_minus_one( ENOSPC );
- return 0;
+ iop->size = the_jnode->info.file.size;
+ return iop->offset;
}
/*
@@ -231,6 +236,7 @@ int memfile_ftruncate(
*/
the_jnode->info.file.size = length;
+ iop->size = the_jnode->info.file.size;
IMFS_update_atime( the_jnode );
diff --git a/c/src/libfs/src/imfs/memfile.c b/c/src/libfs/src/imfs/memfile.c
index 01aee443f3..eda9d6b4a1 100644
--- a/c/src/libfs/src/imfs/memfile.c
+++ b/c/src/libfs/src/imfs/memfile.c
@@ -145,10 +145,14 @@ int memfile_write(
)
{
IMFS_jnode_t *the_jnode;
+ int status;
the_jnode = iop->file_info;
- return IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ iop->size = the_jnode->info.file.size;
+
+ return status;
}
/*
@@ -191,7 +195,8 @@ int memfile_lseek(
if (IMFS_memfile_extend( the_jnode, iop->offset ))
set_errno_and_return_minus_one( ENOSPC );
- return 0;
+ iop->size = the_jnode->info.file.size;
+ return iop->offset;
}
/*
@@ -231,6 +236,7 @@ int memfile_ftruncate(
*/
the_jnode->info.file.size = length;
+ iop->size = the_jnode->info.file.size;
IMFS_update_atime( the_jnode );
diff --git a/cpukit/libfs/src/imfs/memfile.c b/cpukit/libfs/src/imfs/memfile.c
index 01aee443f3..eda9d6b4a1 100644
--- a/cpukit/libfs/src/imfs/memfile.c
+++ b/cpukit/libfs/src/imfs/memfile.c
@@ -145,10 +145,14 @@ int memfile_write(
)
{
IMFS_jnode_t *the_jnode;
+ int status;
the_jnode = iop->file_info;
- return IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
+ iop->size = the_jnode->info.file.size;
+
+ return status;
}
/*
@@ -191,7 +195,8 @@ int memfile_lseek(
if (IMFS_memfile_extend( the_jnode, iop->offset ))
set_errno_and_return_minus_one( ENOSPC );
- return 0;
+ iop->size = the_jnode->info.file.size;
+ return iop->offset;
}
/*
@@ -231,6 +236,7 @@ int memfile_ftruncate(
*/
the_jnode->info.file.size = length;
+ iop->size = the_jnode->info.file.size;
IMFS_update_atime( the_jnode );