summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-02-24 17:39:27 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-03-13 12:23:45 +0100
commit4116fce6290740b1bda8d546472e2f884a35099b (patch)
treee2382e483adde28c13f3ef058cf15ea44e2c532b /cpukit/libfs
parentFilesystem: Change node type enum values (diff)
downloadrtems-4116fce6290740b1bda8d546472e2f884a35099b.tar.bz2
Filesystem: New defaults fsync_h and fdatasync_h
New defaults rtems_filesystem_default_fsync_or_fdatasync() and rtems_filesystem_default_fsync_or_fdatasync_success() for fsync_h and fdatasync_h. The rtems_filesystem_default_fsync_or_fdatasync() sets now errno to EINVAL according to POSIX.
Diffstat (limited to 'cpukit/libfs')
-rw-r--r--cpukit/libfs/Makefile.am8
-rw-r--r--cpukit/libfs/src/defaults/default_fdatasync.c21
-rw-r--r--cpukit/libfs/src/defaults/default_fsync.c10
-rw-r--r--cpukit/libfs/src/defaults/default_fsync_success.c26
-rw-r--r--cpukit/libfs/src/defaults/default_handlers.c4
-rw-r--r--cpukit/libfs/src/devfs/devfs_init.c4
-rw-r--r--cpukit/libfs/src/imfs/imfs.h4
-rw-r--r--cpukit/libfs/src/imfs/imfs_fdatasync.c29
-rw-r--r--cpukit/libfs/src/imfs/imfs_fifo.c4
-rw-r--r--cpukit/libfs/src/imfs/imfs_handlers_device.c4
-rw-r--r--cpukit/libfs/src/imfs/imfs_handlers_directory.c4
-rw-r--r--cpukit/libfs/src/imfs/imfs_handlers_link.c4
-rw-r--r--cpukit/libfs/src/imfs/imfs_handlers_memfile.c4
-rw-r--r--cpukit/libfs/src/nfsclient/src/nfs.c12
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c4
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c2
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems.c4
17 files changed, 62 insertions, 86 deletions
diff --git a/cpukit/libfs/Makefile.am b/cpukit/libfs/Makefile.am
index 18c4c47a53..342f5eb063 100644
--- a/cpukit/libfs/Makefile.am
+++ b/cpukit/libfs/Makefile.am
@@ -16,7 +16,9 @@ libdefaultfs_a_SOURCES = \
src/defaults/default_lock_and_unlock.c \
src/defaults/default_eval_path.c \
src/defaults/default_fchmod.c src/defaults/default_freenode.c \
- src/defaults/default_fsync.c src/defaults/default_link.c \
+ src/defaults/default_fsync.c \
+ src/defaults/default_fsync_success.c \
+ src/defaults/default_link.c \
src/defaults/default_read.c src/defaults/default_rmnod.c \
src/defaults/default_chown.c \
src/defaults/default_fcntl.c src/defaults/default_fsmount.c \
@@ -24,7 +26,7 @@ libdefaultfs_a_SOURCES = \
src/defaults/default_lseek_success.c \
src/defaults/default_readlink.c src/defaults/default_statvfs.c \
src/defaults/default_utime.c \
- src/defaults/default_fdatasync.c src/defaults/default_fstat.c \
+ src/defaults/default_fstat.c \
src/defaults/default_ioctl.c src/defaults/default_mount.c \
src/defaults/default_rename.c src/defaults/default_symlink.c \
src/defaults/default_write.c \
@@ -42,7 +44,7 @@ libimfs_a_SOURCES += src/imfs/deviceerrno.c src/imfs/deviceio.c \
src/imfs/fifoimfs_init.c src/imfs/imfs_chown.c src/imfs/imfs_config.c \
src/imfs/imfs_creat.c src/imfs/imfs_debug.c src/imfs/imfs_directory.c \
src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c \
- src/imfs/imfs_fdatasync.c src/imfs/imfs_fifo.c \
+ src/imfs/imfs_fifo.c \
src/imfs/imfs_fsunmount.c \
src/imfs/imfs_handlers_device.c \
src/imfs/imfs_handlers_directory.c src/imfs/imfs_handlers_link.c \
diff --git a/cpukit/libfs/src/defaults/default_fdatasync.c b/cpukit/libfs/src/defaults/default_fdatasync.c
deleted file mode 100644
index 90677df5c4..0000000000
--- a/cpukit/libfs/src/defaults/default_fdatasync.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * COPYRIGHT (c) 2010.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
- */
-
-#include <rtems/libio.h>
-#include <rtems/libio_.h>
-#include <rtems/seterr.h>
-
-int rtems_filesystem_default_fdatasync(
- rtems_libio_t *iop
-)
-{
- rtems_set_errno_and_return_minus_one( ENOTSUP );
-}
diff --git a/cpukit/libfs/src/defaults/default_fsync.c b/cpukit/libfs/src/defaults/default_fsync.c
index 5cd352e9d4..d610af8ce3 100644
--- a/cpukit/libfs/src/defaults/default_fsync.c
+++ b/cpukit/libfs/src/defaults/default_fsync.c
@@ -9,13 +9,15 @@
* $Id$
*/
-#include <rtems/libio.h>
+#if HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
#include <rtems/libio_.h>
-#include <rtems/seterr.h>
-int rtems_filesystem_default_fsync(
+int rtems_filesystem_default_fsync_or_fdatasync(
rtems_libio_t *iop
)
{
- rtems_set_errno_and_return_minus_one( ENOTSUP );
+ rtems_set_errno_and_return_minus_one( EINVAL );
}
diff --git a/cpukit/libfs/src/defaults/default_fsync_success.c b/cpukit/libfs/src/defaults/default_fsync_success.c
new file mode 100644
index 0000000000..591527e3e8
--- /dev/null
+++ b/cpukit/libfs/src/defaults/default_fsync_success.c
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2012 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems/libio_.h>
+
+int rtems_filesystem_default_fsync_or_fdatasync_success(
+ rtems_libio_t *iop
+)
+{
+ return 0;
+}
diff --git a/cpukit/libfs/src/defaults/default_handlers.c b/cpukit/libfs/src/defaults/default_handlers.c
index 286c2b4157..2a10a19125 100644
--- a/cpukit/libfs/src/defaults/default_handlers.c
+++ b/cpukit/libfs/src/defaults/default_handlers.c
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r rtems_filesystem_handlers_default = {
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = rtems_filesystem_default_fstat,
.ftruncate_h = rtems_filesystem_default_ftruncate,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/devfs/devfs_init.c b/cpukit/libfs/src/devfs/devfs_init.c
index 070aced2a4..db856d21fa 100644
--- a/cpukit/libfs/src/devfs/devfs_init.c
+++ b/cpukit/libfs/src/devfs/devfs_init.c
@@ -45,8 +45,8 @@ const rtems_filesystem_file_handlers_r devFS_file_handlers = {
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = devFS_stat,
.ftruncate_h = rtems_filesystem_default_ftruncate,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h
index 2a851acae4..8d68c07590 100644
--- a/cpukit/libfs/src/imfs/imfs.h
+++ b/cpukit/libfs/src/imfs/imfs.h
@@ -476,10 +476,6 @@ extern int IMFS_rename(
size_t namelen
);
-extern int IMFS_fdatasync(
- rtems_libio_t *iop
-);
-
extern void IMFS_create_orphan(
IMFS_jnode_t *jnode
);
diff --git a/cpukit/libfs/src/imfs/imfs_fdatasync.c b/cpukit/libfs/src/imfs/imfs_fdatasync.c
deleted file mode 100644
index 6b107bfaf8..0000000000
--- a/cpukit/libfs/src/imfs/imfs_fdatasync.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * IMFS_fdatasync
- *
- * The following routine does a sync on an IMFS node. The In Memory
- * File System is always in sync, therefore this routine always returns
- * pass.
- *
- * COPYRIGHT (c) 1989-1999.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
- */
-
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "imfs.h"
-
-int IMFS_fdatasync(
- rtems_libio_t *iop
-)
-{
- return 0;
-}
diff --git a/cpukit/libfs/src/imfs/imfs_fifo.c b/cpukit/libfs/src/imfs/imfs_fifo.c
index 790471e472..985275049a 100644
--- a/cpukit/libfs/src/imfs/imfs_fifo.c
+++ b/cpukit/libfs/src/imfs/imfs_fifo.c
@@ -135,7 +135,7 @@ const rtems_filesystem_file_handlers_r IMFS_fifo_handlers = {
IMFS_fifo_lseek,
IMFS_stat,
rtems_filesystem_default_ftruncate,
- rtems_filesystem_default_fsync,
- rtems_filesystem_default_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync,
rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/imfs/imfs_handlers_device.c b/cpukit/libfs/src/imfs/imfs_handlers_device.c
index a6edfb1f77..df9ea1ae70 100644
--- a/cpukit/libfs/src/imfs/imfs_handlers_device.c
+++ b/cpukit/libfs/src/imfs/imfs_handlers_device.c
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_device_handlers = {
device_lseek,
IMFS_stat,
device_ftruncate,
- rtems_filesystem_default_fsync,
- rtems_filesystem_default_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync,
rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/imfs/imfs_handlers_directory.c b/cpukit/libfs/src/imfs/imfs_handlers_directory.c
index 4778f45599..dfda4fc2cb 100644
--- a/cpukit/libfs/src/imfs/imfs_handlers_directory.c
+++ b/cpukit/libfs/src/imfs/imfs_handlers_directory.c
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_directory_handlers = {
imfs_dir_lseek,
IMFS_stat,
rtems_filesystem_default_ftruncate_directory,
- rtems_filesystem_default_fsync,
- IMFS_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync_success,
+ rtems_filesystem_default_fsync_or_fdatasync_success,
rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/imfs/imfs_handlers_link.c b/cpukit/libfs/src/imfs/imfs_handlers_link.c
index 967aa1410f..fd68f77eef 100644
--- a/cpukit/libfs/src/imfs/imfs_handlers_link.c
+++ b/cpukit/libfs/src/imfs/imfs_handlers_link.c
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_link_handlers = {
rtems_filesystem_default_lseek,
IMFS_stat, /* stat */
rtems_filesystem_default_ftruncate,
- rtems_filesystem_default_fsync,
- rtems_filesystem_default_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync,
rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/imfs/imfs_handlers_memfile.c b/cpukit/libfs/src/imfs/imfs_handlers_memfile.c
index 10e47fd0f8..e179eabf44 100644
--- a/cpukit/libfs/src/imfs/imfs_handlers_memfile.c
+++ b/cpukit/libfs/src/imfs/imfs_handlers_memfile.c
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_memfile_handlers = {
memfile_lseek,
IMFS_stat,
memfile_ftruncate,
- IMFS_fdatasync, /* fsync */
- IMFS_fdatasync,
+ rtems_filesystem_default_fsync_or_fdatasync_success,
+ rtems_filesystem_default_fsync_or_fdatasync_success,
rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/nfsclient/src/nfs.c b/cpukit/libfs/src/nfsclient/src/nfs.c
index ee1185367f..27a4338ae8 100644
--- a/cpukit/libfs/src/nfsclient/src/nfs.c
+++ b/cpukit/libfs/src/nfsclient/src/nfs.c
@@ -2634,8 +2634,8 @@ struct _rtems_filesystem_file_handlers_r nfs_file_file_handlers = {
.lseek_h = nfs_file_lseek,
.fstat_h = nfs_fstat,
.ftruncate_h = nfs_file_ftruncate,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
@@ -2650,8 +2650,8 @@ struct _rtems_filesystem_file_handlers_r nfs_dir_file_handlers = {
.lseek_h = nfs_dir_lseek,
.fstat_h = nfs_fstat,
.ftruncate_h = rtems_filesystem_default_ftruncate_directory,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
@@ -2666,8 +2666,8 @@ struct _rtems_filesystem_file_handlers_r nfs_link_file_handlers = {
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = nfs_fstat,
.ftruncate_h = rtems_filesystem_default_ftruncate,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
index 9ca829e168..d66e4296c5 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
@@ -258,7 +258,7 @@ const rtems_filesystem_file_handlers_r rtems_rfs_rtems_device_handlers = {
.lseek_h = rtems_rfs_rtems_device_lseek,
.fstat_h = rtems_rfs_rtems_fstat,
.ftruncate_h = rtems_rfs_rtems_device_ftruncate,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
index 77eeeba9fa..550973db0c 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
@@ -200,7 +200,7 @@ const rtems_filesystem_file_handlers_r rtems_rfs_rtems_dir_handlers = {
.lseek_h = rtems_rfs_rtems_dir_lseek,
.fstat_h = rtems_rfs_rtems_fstat,
.ftruncate_h = rtems_filesystem_default_ftruncate_directory,
- .fsync_h = rtems_filesystem_default_fsync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fdatasync_h = rtems_rfs_rtems_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
index e6006a8970..577a6e52be 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
@@ -803,8 +803,8 @@ const rtems_filesystem_file_handlers_r rtems_rfs_rtems_link_handlers =
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = rtems_rfs_rtems_fstat,
.ftruncate_h = rtems_filesystem_default_ftruncate,
- .fsync_h = rtems_filesystem_default_fsync,
- .fdatasync_h = rtems_filesystem_default_fdatasync,
+ .fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
+ .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl
};