Index: c/src/lib/libbsp/shared/umon/tfsDriver.c
===================================================================
--- c/src/lib/libbsp/shared/umon/tfsDriver.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ c/src/lib/libbsp/shared/umon/tfsDriver.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -676,6 +676,6 @@
   .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
 };
Index: cpukit/libcsupport/include/rtems/libio.h
===================================================================
--- cpukit/libcsupport/include/rtems/libio.h	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libcsupport/include/rtems/libio.h	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -901,5 +901,6 @@
  * @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)(
@@ -915,5 +916,6 @@
  * @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)(
@@ -1069,18 +1071,18 @@
 
 /**
- * @retval -1 Always.  The errno is set to ENOTSUP.
- *
- * @see rtems_filesystem_fsync_t.
- */
-int rtems_filesystem_default_fsync(
+ * @retval -1 Always.  The errno is set to EINVAL.
+ *
+ * @see rtems_filesystem_fsync_t and rtems_filesystem_fdatasync_t.
+ */
+int rtems_filesystem_default_fsync_or_fdatasync(
   rtems_libio_t *iop
 );
 
 /**
- * @retval -1 Always.  The errno is set to ENOTSUP.
- *
- * @see rtems_filesystem_fdatasync_t.
- */
-int rtems_filesystem_default_fdatasync(
+ * @retval 0 Always.
+ *
+ * @see rtems_filesystem_fsync_t and rtems_filesystem_fdatasync_t.
+ */
+int rtems_filesystem_default_fsync_or_fdatasync_success(
   rtems_libio_t *iop
 );
Index: cpukit/libcsupport/src/__usrenv.c
===================================================================
--- cpukit/libcsupport/src/__usrenv.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libcsupport/src/__usrenv.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -48,6 +48,6 @@
   .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
 };
Index: cpukit/libfs/Makefile.am
===================================================================
--- cpukit/libfs/Makefile.am	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/Makefile.am	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -17,5 +17,7 @@
     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 \
@@ -25,5 +27,5 @@
     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 \
@@ -43,5 +45,5 @@
     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 \
Index: ukit/libfs/src/defaults/default_fdatasync.c
===================================================================
--- cpukit/libfs/src/defaults/default_fdatasync.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ 	(revision )
@@ -1,21 +1,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 );
-}
Index: cpukit/libfs/src/defaults/default_fsync.c
===================================================================
--- cpukit/libfs/src/defaults/default_fsync.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/defaults/default_fsync.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -10,12 +10,14 @@
  */
 
-#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 );
 }
Index: cpukit/libfs/src/defaults/default_fsync_success.c
===================================================================
--- cpukit/libfs/src/defaults/default_fsync_success.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
+++ cpukit/libfs/src/defaults/default_fsync_success.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -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;
+}
Index: cpukit/libfs/src/defaults/default_handlers.c
===================================================================
--- cpukit/libfs/src/defaults/default_handlers.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/defaults/default_handlers.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -31,6 +31,6 @@
   .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
 };
Index: cpukit/libfs/src/devfs/devfs_init.c
===================================================================
--- cpukit/libfs/src/devfs/devfs_init.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/devfs/devfs_init.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -46,6 +46,6 @@
   .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
 };
Index: cpukit/libfs/src/imfs/imfs.h
===================================================================
--- cpukit/libfs/src/imfs/imfs.h	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/imfs/imfs.h	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -477,8 +477,4 @@
 );
 
-extern int IMFS_fdatasync(
-  rtems_libio_t *iop
-);
-
 extern void IMFS_create_orphan(
   IMFS_jnode_t *jnode
Index: ukit/libfs/src/imfs/imfs_fdatasync.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_fdatasync.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ 	(revision )
@@ -1,29 +1,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;
-}
Index: cpukit/libfs/src/imfs/imfs_fifo.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_fifo.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/imfs/imfs_fifo.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -136,6 +136,6 @@
   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
 };
Index: cpukit/libfs/src/imfs/imfs_handlers_device.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_handlers_device.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/imfs/imfs_handlers_device.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -31,6 +31,6 @@
   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
 };
Index: cpukit/libfs/src/imfs/imfs_handlers_directory.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_handlers_directory.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/imfs/imfs_handlers_directory.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -31,6 +31,6 @@
   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
 };
Index: cpukit/libfs/src/imfs/imfs_handlers_link.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_handlers_link.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/imfs/imfs_handlers_link.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -31,6 +31,6 @@
   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
 };
Index: cpukit/libfs/src/imfs/imfs_handlers_memfile.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_handlers_memfile.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/imfs/imfs_handlers_memfile.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -31,6 +31,6 @@
   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
 };
Index: cpukit/libfs/src/nfsclient/src/nfs.c
===================================================================
--- cpukit/libfs/src/nfsclient/src/nfs.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/nfsclient/src/nfs.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -2635,6 +2635,6 @@
 	.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
 };
@@ -2651,6 +2651,6 @@
 	.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
 };
@@ -2667,6 +2667,6 @@
 	.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
 };
Index: cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c
===================================================================
--- cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -259,6 +259,6 @@
   .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
 };
Index: cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c
===================================================================
--- cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -201,5 +201,5 @@
   .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
Index: cpukit/libfs/src/rfs/rtems-rfs-rtems.c
===================================================================
--- cpukit/libfs/src/rfs/rtems-rfs-rtems.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libfs/src/rfs/rtems-rfs-rtems.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -804,6 +804,6 @@
   .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
 };
Index: cpukit/libnetworking/lib/ftpfs.c
===================================================================
--- cpukit/libnetworking/lib/ftpfs.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libnetworking/lib/ftpfs.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -1304,6 +1304,6 @@
   .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
 };
@@ -1318,6 +1318,6 @@
   .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
 };
Index: cpukit/libnetworking/lib/tftpDriver.c
===================================================================
--- cpukit/libnetworking/lib/tftpDriver.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libnetworking/lib/tftpDriver.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -1052,6 +1052,6 @@
    .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
 };
Index: cpukit/libnetworking/rtems/rtems_syscall.c
===================================================================
--- cpukit/libnetworking/rtems/rtems_syscall.c	(revision bea7043c80a9534c7ad3c0dd3382990915a07a07)
+++ cpukit/libnetworking/rtems/rtems_syscall.c	(revision 4116fce6290740b1bda8d546472e2f884a35099b)
@@ -771,6 +771,6 @@
 	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 */
 };
