[rtems commit] IMFS: Do not check for unsupported types

Joel Sherrill joel at rtems.org
Thu Mar 29 14:14:29 UTC 2012


Module:    rtems
Branch:    master
Commit:    1cf4de83f1a72ef06816e79ffd208963e713d0f1
Changeset: http://git.rtems.org/rtems/commit/?id=1cf4de83f1a72ef06816e79ffd208963e713d0f1

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Feb 21 15:52:55 2012 +0100

IMFS: Do not check for unsupported types

Allow creation of nodes with an unsupported type.  Later the usage of
such nodes will return an error status.

---

 cpukit/libfs/src/imfs/imfs_creat.c |   10 ----------
 testsuites/sptests/spfifo01/init.c |   24 +++++++++++++++++++++++-
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/cpukit/libfs/src/imfs/imfs_creat.c b/cpukit/libfs/src/imfs/imfs_creat.c
index 37e3ac0..4c030a2 100644
--- a/cpukit/libfs/src/imfs/imfs_creat.c
+++ b/cpukit/libfs/src/imfs/imfs_creat.c
@@ -45,16 +45,6 @@ IMFS_jnode_t *IMFS_create_node(
   fs_info = parent_loc->mt_entry->fs_info;
 
   /*
-   *  Reject creation of FIFOs if support is disabled.
-   */
-  if ( type == IMFS_FIFO &&
-       fs_info->fifo_handlers == &rtems_filesystem_handlers_default ) {
-    errno = ENOTSUP;
-
-    return NULL;
-  }
-
-  /*
    *  Allocate filesystem node and fill in basic information
    */
   node  = IMFS_allocate_node( type, name, namelen, mode );
diff --git a/testsuites/sptests/spfifo01/init.c b/testsuites/sptests/spfifo01/init.c
index dc5f975..71d2369 100644
--- a/testsuites/sptests/spfifo01/init.c
+++ b/testsuites/sptests/spfifo01/init.c
@@ -15,6 +15,9 @@
 
 #include <sys/stat.h>
 #include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
 
 #include "tmacros.h"
 
@@ -23,6 +26,9 @@
 static void test_main(void)
 {
   int status = -1;
+  int fd;
+  char buf [1];
+  ssize_t n;
 
   puts("\n\n*** FIFO / PIPE OPEN TEST - 1 ***");
 
@@ -32,7 +38,21 @@ static void test_main(void)
     "Must result in failure since pipes are disabled in the configuration."
   );
   status = mkfifo(FIFO_PATH, 0777);
-  rtems_test_assert(status == -1);
+  rtems_test_assert(status == 0);
+
+  fd = open(FIFO_PATH, O_RDWR);
+  rtems_test_assert(fd >= 0);
+
+  n = read(fd, buf, sizeof(buf));
+  rtems_test_assert(n == -1);
+  rtems_test_assert(errno == ENOTSUP);
+
+  n = write(fd, buf, sizeof(buf));
+  rtems_test_assert(n == -1);
+  rtems_test_assert(errno == ENOTSUP);
+
+  status = close(fd);
+  rtems_test_assert(status == 0);
 
   puts("*** END OF FIFO / PIPE OPEN TEST - 1 ***");
 }
@@ -48,6 +68,8 @@ rtems_task Init(rtems_task_argument not_used)
 
 #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
 
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
+
 #define CONFIGURE_MAXIMUM_TASKS 1
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE




More information about the vc mailing list