summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-09-13 15:17:57 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-09-13 16:47:55 +0200
commitc5b2d7944c63695d4be21f4f904d74a945270763 (patch)
tree5bf2df463162fa437641e45e07afd4787eb61559
parentIMFS: Use inline functions instead of macros (diff)
downloadrtems-c5b2d7944c63695d4be21f4f904d74a945270763.tar.bz2
IMFS: Fix truncate according to POSIX
ftruncate() and open() with O_TRUNC shall upon successful completion mark for update the st_ctime and st_mtime fields of the file. truncate() shall upon successful completion, if the file size is changed, mark for update the st_ctime and st_mtime fields of the file. The POSIX standard "The Open Group Base Specifications Issue 7", IEEE Std 1003.1, 2013 Edition says nothing about the behaviour of truncate() if the file size remains unchanged. Future directions of the standard may mandate the behaviour specified in ftruncate(): http://austingroupbugs.net/view.php?id=489
-rw-r--r--cpukit/libfs/src/imfs/memfile.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/cpukit/libfs/src/imfs/memfile.c b/cpukit/libfs/src/imfs/memfile.c
index b467ae99aa..2b398f554e 100644
--- a/cpukit/libfs/src/imfs/memfile.c
+++ b/cpukit/libfs/src/imfs/memfile.c
@@ -174,7 +174,7 @@ int memfile_ftruncate(
*/
the_jnode->info.file.size = length;
- IMFS_update_atime( the_jnode );
+ IMFS_mtime_ctime_update(the_jnode);
return 0;
}
@@ -248,8 +248,7 @@ MEMFILE_STATIC int IMFS_memfile_extend(
*/
the_jnode->info.file.size = new_length;
- IMFS_update_ctime(the_jnode);
- IMFS_update_mtime(the_jnode);
+ IMFS_mtime_ctime_update(the_jnode);
return 0;
}