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.
This commit is contained in:
Sebastian Huber
2012-03-13 12:23:45 +01:00
parent bea7043c80
commit 4116fce629
23 changed files with 85 additions and 107 deletions
+2 -2
View File
@@ -675,7 +675,7 @@ static const rtems_filesystem_file_handlers_r rtems_tfs_handlers = {
.lseek_h = rtems_tfs_lseek,
.fstat_h = rtems_filesystem_default_fstat,
.ftruncate_h = rtems_tfs_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
};
+10 -8
View File
@@ -900,7 +900,8 @@ typedef int (*rtems_filesystem_ftruncate_t)(
* @retval 0 Successful operation.
* @retval -1 An error occured. The errno is set to indicate the error.
*
* @see rtems_filesystem_default_fsync().
* @see rtems_filesystem_default_fsync_or_fdatasync() and
* rtems_filesystem_default_fsync_or_fdatasync_success().
*/
typedef int (*rtems_filesystem_fsync_t)(
rtems_libio_t *iop
@@ -914,7 +915,8 @@ typedef int (*rtems_filesystem_fsync_t)(
* @retval 0 Successful operation.
* @retval -1 An error occured. The errno is set to indicate the error.
*
* @see rtems_filesystem_default_fdatasync().
* @see rtems_filesystem_default_fsync_or_fdatasync() and
* rtems_filesystem_default_fsync_or_fdatasync_success().
*/
typedef int (*rtems_filesystem_fdatasync_t)(
rtems_libio_t *iop
@@ -1068,20 +1070,20 @@ int rtems_filesystem_default_ftruncate_directory(
);
/**
* @retval -1 Always. The errno is set to ENOTSUP.
* @retval -1 Always. The errno is set to EINVAL.
*
* @see rtems_filesystem_fsync_t.
* @see rtems_filesystem_fsync_t and rtems_filesystem_fdatasync_t.
*/
int rtems_filesystem_default_fsync(
int rtems_filesystem_default_fsync_or_fdatasync(
rtems_libio_t *iop
);
/**
* @retval -1 Always. The errno is set to ENOTSUP.
* @retval 0 Always.
*
* @see rtems_filesystem_fdatasync_t.
* @see rtems_filesystem_fsync_t and rtems_filesystem_fdatasync_t.
*/
int rtems_filesystem_default_fdatasync(
int rtems_filesystem_default_fsync_or_fdatasync_success(
rtems_libio_t *iop
);
+2 -2
View File
@@ -47,8 +47,8 @@ const rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = null_handler_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
};
+5 -3
View File
@@ -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 \
@@ -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 );
}
+7 -5
View File
@@ -9,13 +9,15 @@
* $Id$
*/
#include <rtems/libio.h>
#include <rtems/libio_.h>
#include <rtems/seterr.h>
#if HAVE_CONFIG_H
#include "config.h"
#endif
int rtems_filesystem_default_fsync(
#include <rtems/libio_.h>
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 );
}
@@ -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;
}
+2 -2
View File
@@ -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
};
+2 -2
View File
@@ -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
};
-4
View File
@@ -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
);
-29
View File
@@ -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;
}
+2 -2
View File
@@ -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
};
+2 -2
View File
@@ -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
};
@@ -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
};
+2 -2
View File
@@ -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
};
@@ -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
};
+6 -6
View File
@@ -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
};
+2 -2
View File
@@ -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
};
+1 -1
View File
@@ -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
};
+2 -2
View File
@@ -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
};
+4 -4
View File
@@ -1303,8 +1303,8 @@ static const rtems_filesystem_file_handlers_r rtems_ftpfs_handlers = {
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = rtems_ftpfs_fstat,
.ftruncate_h = rtems_ftpfs_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
};
@@ -1317,7 +1317,7 @@ static const rtems_filesystem_file_handlers_r rtems_ftpfs_root_handlers = {
.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
};
+2 -2
View File
@@ -1051,7 +1051,7 @@ static const rtems_filesystem_file_handlers_r rtems_tftp_handlers = {
.lseek_h = rtems_filesystem_default_lseek,
.fstat_h = rtems_filesystem_default_fstat,
.ftruncate_h = rtems_tftp_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
};
+2 -2
View File
@@ -770,7 +770,7 @@ static const rtems_filesystem_file_handlers_r socket_handlers = {
rtems_filesystem_default_lseek, /* lseek */
rtems_bsdnet_fstat, /* fstat */
rtems_filesystem_default_ftruncate, /* ftruncate */
rtems_filesystem_default_fsync, /* fsync */
rtems_filesystem_default_fdatasync, /* fdatasync */
rtems_filesystem_default_fsync_or_fdatasync, /* fsync */
rtems_filesystem_default_fsync_or_fdatasync, /* fdatasync */
rtems_bsdnet_fcntl /* fcntl */
};