diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-05-09 14:33:51 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-05-11 13:58:43 +0200 |
commit | 86ef0df976faf1b060347a07744814458aa42619 (patch) | |
tree | d001b836005d059b5aa11cf541093f5027c50d28 /cpukit/libfs/src/dosfs/msdos_handlers_dir.c | |
parent | libblock: Add RTEMS_BLKIO_PURGEDEV (diff) | |
download | rtems-86ef0df976faf1b060347a07744814458aa42619.tar.bz2 |
dosfs: Remove fat_file_datasync()
The fat_file_datasync() read every cluster of the file into the cache
and then synchronized it step-by-step. For unmodified buffers this is a
non-operation. For modified buffers this will wake-up the swapout task
which performs then a single buffer write operation. This is usually
quite inefficient. Firstly we do single buffer writes, secondly we
may perform a lot of unnecessary read operations (for huge files this is
really bad), and thirdly this leads likely to cache evictions.
The synchronization procedure is replaced by a simple
rtems_bdbuf_sync_dev(). This has the side-effect that also buffers not
related to the file are synchronized, but since the modified list is
normally short this should be acceptable.
Diffstat (limited to 'cpukit/libfs/src/dosfs/msdos_handlers_dir.c')
-rw-r--r-- | cpukit/libfs/src/dosfs/msdos_handlers_dir.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cpukit/libfs/src/dosfs/msdos_handlers_dir.c b/cpukit/libfs/src/dosfs/msdos_handlers_dir.c index 8c7dcdc0a5..7da9c1ec77 100644 --- a/cpukit/libfs/src/dosfs/msdos_handlers_dir.c +++ b/cpukit/libfs/src/dosfs/msdos_handlers_dir.c @@ -27,7 +27,7 @@ const rtems_filesystem_file_handlers_r msdos_dir_handlers = { rtems_filesystem_default_lseek_directory, msdos_dir_stat, rtems_filesystem_default_ftruncate_directory, - msdos_dir_sync, - msdos_dir_sync, + msdos_sync, + msdos_sync, rtems_filesystem_default_fcntl }; |