Index: cpukit/ChangeLog
===================================================================
--- cpukit/ChangeLog	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/ChangeLog	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -1,2 +1,23 @@
+2010-07-16	Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+	* libcsupport/include/rtems/libio.h: Removed file_info and handlers
+	fields in rtems_libio_t.
+	* libcsupport/src/close.c, libcsupport/src/fcntl.c,
+	libcsupport/src/fdatasync.c, libcsupport/src/fstat.c,
+	libcsupport/src/fsync.c, libcsupport/src/ftruncate.c,
+	libcsupport/src/getdents.c, libcsupport/src/ioctl.c,
+	libcsupport/src/libio_sockets.c, libcsupport/src/lseek.c,
+	libcsupport/src/open.c, libcsupport/src/read.c,
+	libcsupport/src/readv.c, libcsupport/src/write.c,
+	libcsupport/src/writev.c, libfs/src/devfs/devclose.c,
+	libfs/src/devfs/devioctl.c, libfs/src/devfs/devopen.c,
+	libfs/src/devfs/devread.c, libfs/src/devfs/devwrite.c
+	libfs/src/dosfs/msdos_dir.c libfs/src/dosfs/msdos_file.c
+	libfs/src/imfs/deviceio.c libfs/src/imfs/imfs_directory.c
+	libfs/src/imfs/imfs_fifo.c libfs/src/imfs/memfile.c
+	libfs/src/nfsclient/src/nfs.c libfs/src/rfs/rtems-rfs-rtems-file.c
+	libfs/src/rfs/rtems-rfs-rtems.h libnetworking/lib/ftpfs.c: Reflect
+	changes above.
+
 2010-07-16	Sebastian Huber <sebastian.huber@embedded-brains.de>
 
Index: cpukit/libcsupport/include/rtems/libio.h
===================================================================
--- cpukit/libcsupport/include/rtems/libio.h	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/include/rtems/libio.h	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -1120,6 +1120,4 @@
   uint32_t                                data0;     /* private to "driver" */
   void                                   *data1;     /* ... */
-  void                                   *file_info; /* used by file handlers */
-  const rtems_filesystem_file_handlers_r *handlers;  /* type specific handlers */
 };
 
Index: cpukit/libcsupport/src/close.c
===================================================================
--- cpukit/libcsupport/src/close.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/close.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -30,5 +30,5 @@
 
   rc = RTEMS_SUCCESSFUL;
-  rc = (*iop->handlers->close_h)( iop );
+  rc = (*iop->pathinfo.handlers->close_h)( iop );
 
   rtems_filesystem_freenode( &iop->pathinfo );
Index: cpukit/libcsupport/src/fcntl.c
===================================================================
--- cpukit/libcsupport/src/fcntl.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/fcntl.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -63,6 +63,4 @@
       }
 
-      diop->handlers   = iop->handlers;
-      diop->file_info  = iop->file_info;
       diop->flags      = iop->flags;
       diop->pathinfo   = iop->pathinfo;
@@ -141,5 +139,5 @@
 
   if (ret >= 0) {
-    int err = (*iop->handlers->fcntl_h)( cmd, iop );
+    int err = (*iop->pathinfo.handlers->fcntl_h)( cmd, iop );
     if (err) {
       errno = err;
Index: cpukit/libcsupport/src/fdatasync.c
===================================================================
--- cpukit/libcsupport/src/fdatasync.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/fdatasync.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -36,4 +36,4 @@
    */
 
-  return (*iop->handlers->fdatasync_h)( iop );
+  return (*iop->pathinfo.handlers->fdatasync_h)( iop );
 }
Index: cpukit/libcsupport/src/fstat.c
===================================================================
--- cpukit/libcsupport/src/fstat.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/fstat.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -51,5 +51,5 @@
   memset( sbuf, 0, sizeof(struct stat) );
 
-  return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf );
+  return (*iop->pathinfo.handlers->fstat_h)( &iop->pathinfo, sbuf );
 }
 
Index: cpukit/libcsupport/src/fsync.c
===================================================================
--- cpukit/libcsupport/src/fsync.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/fsync.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -36,4 +36,4 @@
    */
 
-  return (*iop->handlers->fsync_h)( iop );
+  return (*iop->pathinfo.handlers->fsync_h)( iop );
 }
Index: cpukit/libcsupport/src/ftruncate.c
===================================================================
--- cpukit/libcsupport/src/ftruncate.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/ftruncate.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -48,4 +48,4 @@
   rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );
 
-  return (*iop->handlers->ftruncate_h)( iop, length );
+  return (*iop->pathinfo.handlers->ftruncate_h)( iop, length );
 }
Index: cpukit/libcsupport/src/getdents.c
===================================================================
--- cpukit/libcsupport/src/getdents.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/getdents.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -52,4 +52,4 @@
    *  of the read attempt.
    */
-  return (*iop->handlers->read_h)( iop, dd_buf, dd_len  );
+  return (*iop->pathinfo.handlers->read_h)( iop, dd_buf, dd_len  );
 }
Index: cpukit/libcsupport/src/ioctl.c
===================================================================
--- cpukit/libcsupport/src/ioctl.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/ioctl.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -48,5 +48,5 @@
    *  Now process the ioctl().
    */
-  rc = (*iop->handlers->ioctl_h)( iop, command, buffer );
+  rc = (*iop->pathinfo.handlers->ioctl_h)( iop, command, buffer );
 
   return rc;
Index: cpukit/libcsupport/src/libio_sockets.c
===================================================================
--- cpukit/libcsupport/src/libio_sockets.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/libio_sockets.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -17,8 +17,5 @@
 #endif
 
-#include <rtems/libio_.h>             /* libio_.h pulls in rtems */
-#include <rtems.h>
-
-#include <errno.h>
+#include <rtems/libio_.h>
 #include <rtems/seterr.h>
 
@@ -71,7 +68,6 @@
   iop->data0 = fd;
   iop->data1 = so;
-  iop->handlers = h;
-  iop->pathinfo.handlers = rtems_filesystem_root.handlers;
-  iop->pathinfo.ops = rtems_filesystem_root.ops;
+  iop->pathinfo.handlers = h;
+  iop->pathinfo.ops = &rtems_filesystem_operations_default;
   return fd;
 }
Index: cpukit/libcsupport/src/lseek.c
===================================================================
--- cpukit/libcsupport/src/lseek.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/lseek.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -62,5 +62,5 @@
    */
 
-  status = (*iop->handlers->lseek_h)( iop, offset, whence );
+  status = (*iop->pathinfo.handlers->lseek_h)( iop, offset, whence );
   if ( status == (off_t) -1 )
     iop->offset = old_offset;
Index: cpukit/libcsupport/src/open.c
===================================================================
--- cpukit/libcsupport/src/open.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/open.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -155,10 +155,8 @@
    *  returned by successful path evaluation.
    */
-  iop->handlers   = loc.handlers;
-  iop->file_info  = loc.node_access;
   iop->flags     |= rtems_libio_fcntl_flags( flags );
   iop->pathinfo   = loc;
 
-  rc = (*iop->handlers->open_h)( iop, pathname, flags, mode );
+  rc = (*iop->pathinfo.handlers->open_h)( iop, pathname, flags, mode );
   if ( rc ) {
     rc = errno;
Index: cpukit/libcsupport/src/read.c
===================================================================
--- cpukit/libcsupport/src/read.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/read.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -41,5 +41,5 @@
    *  Now process the read().
    */
-  rc = (*iop->handlers->read_h)( iop, buffer, count );
+  rc = (*iop->pathinfo.handlers->read_h)( iop, buffer, count );
 
   if ( rc > 0 )
Index: cpukit/libcsupport/src/readv.c
===================================================================
--- cpukit/libcsupport/src/readv.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/readv.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -98,5 +98,9 @@
    */
   for ( total=0, v=0 ; v < iovcnt ; v++ ) {
-    bytes = (*iop->handlers->read_h)( iop, iov[v].iov_base, iov[v].iov_len );
+    bytes = (*iop->pathinfo.handlers->read_h)(
+      iop,
+      iov[v].iov_base,
+      iov[v].iov_len
+    );
 
     if ( bytes < 0 )
Index: cpukit/libcsupport/src/write.c
===================================================================
--- cpukit/libcsupport/src/write.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/write.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -48,5 +48,5 @@
    *  Now process the write() request.
    */
-  rc = (*iop->handlers->write_h)( iop, buffer, count );
+  rc = (*iop->pathinfo.handlers->write_h)( iop, buffer, count );
 
   if ( rc > 0 )
Index: cpukit/libcsupport/src/writev.c
===================================================================
--- cpukit/libcsupport/src/writev.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libcsupport/src/writev.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -105,5 +105,9 @@
       continue;
 
-    bytes = (*iop->handlers->write_h)( iop, iov[v].iov_base, iov[v].iov_len );
+    bytes = (*iop->pathinfo.handlers->write_h)(
+      iop,
+      iov[v].iov_base,
+      iov[v].iov_len
+    );
 
     if ( bytes < 0 )
Index: cpukit/libfs/src/devfs/devclose.c
===================================================================
--- cpukit/libfs/src/devfs/devclose.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/devfs/devclose.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -24,5 +24,5 @@
   rtems_device_name_t           *np;
 
-  np         = (rtems_device_name_t *)iop->file_info;
+  np         = (rtems_device_name_t *)iop->pathinfo.node_access;
 
   args.iop   = iop;
Index: cpukit/libfs/src/devfs/devioctl.c
===================================================================
--- cpukit/libfs/src/devfs/devioctl.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/devfs/devioctl.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -26,5 +26,5 @@
   rtems_device_name_t      *np;
 
-  np           = (rtems_device_name_t *)iop->file_info;
+  np           = (rtems_device_name_t *)iop->pathinfo.node_access;
 
   args.iop     = iop;
Index: cpukit/libfs/src/devfs/devopen.c
===================================================================
--- cpukit/libfs/src/devfs/devopen.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/devfs/devopen.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -27,5 +27,5 @@
   rtems_device_name_t           *np;
 
-  np         = (rtems_device_name_t *)iop->file_info;
+  np         = (rtems_device_name_t *)iop->pathinfo.node_access;
 
   args.iop   = iop;
Index: cpukit/libfs/src/devfs/devread.c
===================================================================
--- cpukit/libfs/src/devfs/devread.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/devfs/devread.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -26,5 +26,5 @@
   rtems_device_name_t     *np;
 
-  np               = (rtems_device_name_t *)iop->file_info;
+  np               = (rtems_device_name_t *)iop->pathinfo.node_access;
 
   args.iop         = iop;
Index: cpukit/libfs/src/devfs/devwrite.c
===================================================================
--- cpukit/libfs/src/devfs/devwrite.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/devfs/devwrite.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -26,5 +26,5 @@
   rtems_device_name_t    *np;
 
-  np           = (rtems_device_name_t *)iop->file_info;
+  np           = (rtems_device_name_t *)iop->pathinfo.node_access;
 
   args.iop         = iop;
Index: cpukit/libfs/src/dosfs/msdos_dir.c
===================================================================
--- cpukit/libfs/src/dosfs/msdos_dir.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/dosfs/msdos_dir.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -52,5 +52,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -87,5 +87,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -202,5 +202,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
     fat_file_fd_t     *tmp_fat_fd = NULL;
     struct dirent      tmp_dirent;
@@ -592,5 +592,5 @@
     int                rc = RC_OK;
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
 
Index: cpukit/libfs/src/dosfs/msdos_file.c
===================================================================
--- cpukit/libfs/src/dosfs/msdos_file.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/dosfs/msdos_file.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -48,5 +48,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -89,5 +89,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -149,5 +149,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -182,5 +182,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -229,5 +229,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
     uint32_t           real_size = 0;
 
@@ -307,5 +307,5 @@
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
 
     if (length >= fat_fd->fat_file_size)
@@ -350,5 +350,5 @@
     int                rc = RC_OK;
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
 
@@ -410,5 +410,5 @@
     int                rc = RC_OK;
     rtems_status_code  sc = RTEMS_SUCCESSFUL;
-    fat_file_fd_t     *fat_fd = iop->file_info;
+    fat_file_fd_t     *fat_fd = iop->pathinfo.node_access;
     msdos_fs_info_t   *fs_info = iop->pathinfo.mt_entry->fs_info;
 
Index: cpukit/libfs/src/imfs/deviceio.c
===================================================================
--- cpukit/libfs/src/imfs/deviceio.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/imfs/deviceio.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -42,5 +42,5 @@
   IMFS_jnode_t                  *the_jnode;
 
-  the_jnode  = iop->file_info;
+  the_jnode  = iop->pathinfo.node_access;
 
   args.iop   = iop;
@@ -71,5 +71,5 @@
   IMFS_jnode_t                  *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   args.iop   = iop;
@@ -104,5 +104,5 @@
   IMFS_jnode_t           *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   args.iop         = iop;
@@ -141,5 +141,5 @@
   IMFS_jnode_t           *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   args.iop         = iop;
@@ -182,5 +182,5 @@
   args.buffer  = buffer;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   status = rtems_io_control(
Index: cpukit/libfs/src/imfs/imfs_directory.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_directory.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/imfs/imfs_directory.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -48,5 +48,5 @@
 
   /* Is the node a directory ? */
-  the_jnode = (IMFS_jnode_t *) iop->file_info;
+  the_jnode = (IMFS_jnode_t *) iop->pathinfo.node_access;
 
   if ( the_jnode->type != IMFS_DIRECTORY )
@@ -91,5 +91,5 @@
    struct dirent        tmp_dirent;
 
-   the_jnode = (IMFS_jnode_t *)iop->file_info;
+   the_jnode = (IMFS_jnode_t *)iop->pathinfo.node_access;
    the_chain = &the_jnode->info.directory.Entries;
 
Index: cpukit/libfs/src/imfs/imfs_fifo.c
===================================================================
--- cpukit/libfs/src/imfs/imfs_fifo.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/imfs/imfs_fifo.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -23,5 +23,5 @@
 #define JNODE2PIPE(_jnode)  ( (_jnode)->info.fifo.pipe )
 
-#define LIBIO2PIPE(_iop)  ( JNODE2PIPE((IMFS_jnode_t *)(_iop)->file_info) )
+#define LIBIO2PIPE(_iop)  ( JNODE2PIPE((IMFS_jnode_t *)(_iop)->pathinfo.node_access) )
 
 /* Set errno and return -1 if error, else return _err */
@@ -40,5 +40,5 @@
 )
 {
-  IMFS_jnode_t *jnode = iop->file_info;
+  IMFS_jnode_t *jnode = iop->pathinfo.node_access;
 
   int err = fifo_open(&JNODE2PIPE(jnode), iop);
@@ -50,5 +50,5 @@
 )
 {
-  IMFS_jnode_t *jnode = iop->file_info;
+  IMFS_jnode_t *jnode = iop->pathinfo.node_access;
 
   int err = pipe_release(&JNODE2PIPE(jnode), iop);
@@ -68,5 +68,5 @@
 )
 {
-  IMFS_jnode_t *jnode = iop->file_info;
+  IMFS_jnode_t *jnode = iop->pathinfo.node_access;
 
   int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop);
@@ -83,5 +83,5 @@
 )
 {
-  IMFS_jnode_t *jnode = iop->file_info;
+  IMFS_jnode_t *jnode = iop->pathinfo.node_access;
 
   int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop);
Index: cpukit/libfs/src/imfs/memfile.c
===================================================================
--- cpukit/libfs/src/imfs/memfile.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/imfs/memfile.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -99,5 +99,5 @@
   IMFS_jnode_t  *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   /*
@@ -138,5 +138,5 @@
   IMFS_jnode_t   *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   if (iop->flags & LIBIO_FLAGS_APPEND)
@@ -162,5 +162,5 @@
   IMFS_jnode_t   *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   return IMFS_memfile_read( the_jnode, iop->offset, buffer, count );
@@ -182,5 +182,5 @@
   ssize_t         status;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
@@ -206,5 +206,5 @@
   IMFS_jnode_t   *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   return 0;
@@ -225,5 +225,5 @@
   IMFS_jnode_t   *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   if (the_jnode->type == IMFS_LINEAR_FILE) {
@@ -259,5 +259,5 @@
   IMFS_jnode_t   *the_jnode;
 
-  the_jnode = iop->file_info;
+  the_jnode = iop->pathinfo.node_access;
 
   /*
Index: cpukit/libfs/src/nfsclient/src/nfs.c
===================================================================
--- cpukit/libfs/src/nfsclient/src/nfs.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/nfsclient/src/nfs.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -2516,21 +2516,4 @@
  *****************************************/
 
-
-#if 0
-/* from rtems/libio.h for convenience */
-struct rtems_libio_tt {
-		rtems_driver_name_t              *driver;
-		off_t                             size;      /* size of file */
-		off_t                             offset;    /* current offset into file */
-		uint32_t                          flags;
-		rtems_filesystem_location_info_t  pathinfo;
-		Objects_Id                        sem;
-		uint32_t                          data0;     /* private to "driver" */
-		void                             *data1;     /* ... */
-		void                             *file_info; /* used by file handlers */
-		rtems_filesystem_file_handlers_r *handlers;  /* type specific handlers */
-};
-#endif
-
 /* stateless NFS protocol makes this trivial */
 static int nfs_file_open(
@@ -2541,5 +2524,4 @@
 )
 {
-	iop->file_info = 0;
 	return 0;
 }
@@ -2548,5 +2530,5 @@
  * remember the last 'read' position, i.e.
  * the server 'cookie'. We do manage this information
- * attached to the iop->file_info.
+ * attached to the pathinfo.node_access_2.
  */
 static int nfs_dir_open(
@@ -2561,9 +2543,9 @@
 
 	/* create a readdirargs object and copy the file handle;
-	 * attach to the file_info.
+	 * attach to the pathinfo.node_access_2
 	 */
 
 	di = (DirInfo) malloc(sizeof(*di));
-	iop->file_info = di;
+	iop->pathinfo.node_access_2 = di;
 
 	if ( !di  ) {
@@ -2599,6 +2581,6 @@
 )
 {
-	free(iop->file_info);
-	iop->file_info = 0;
+	free(iop->pathinfo.node_access_2);
+	iop->pathinfo.node_access_2 = 0;
 	return 0;
 }
@@ -2657,5 +2639,5 @@
 )
 {
-DirInfo			di     = iop->file_info;
+DirInfo			di     = iop->pathinfo.node_access_2;
 RpcUdpServer	server = ((Nfs)iop->pathinfo.mt_entry->fs_info)->server;
 
@@ -2815,5 +2797,5 @@
 )
 {
-DirInfo di = iop->file_info;
+DirInfo di = iop->pathinfo.node_access_2;
 
 	/* we don't support anything other than
Index: cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c
===================================================================
--- cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -71,5 +71,5 @@
     printf("rtems-rfs: file-open: handle:%p\n", file);
   
-  iop->file_info = file;
+  iop->pathinfo.node_access = file;
   
   rtems_rfs_rtems_unlock (fs);
@@ -87,5 +87,5 @@
 rtems_rfs_rtems_file_close (rtems_libio_t* iop)
 {
-  rtems_rfs_file_handle* file = iop->file_info;
+  rtems_rfs_file_handle* file = iop->pathinfo.node_access;
   rtems_rfs_file_system* fs = rtems_rfs_file_fs (file);
   int                    rc;
@@ -117,5 +117,5 @@
                            size_t         count)
 {
-  rtems_rfs_file_handle* file = iop->file_info;
+  rtems_rfs_file_handle* file = iop->pathinfo.node_access;
   rtems_rfs_pos          pos;
   uint8_t*               data = buffer;
@@ -182,5 +182,5 @@
                             size_t         count)
 {
-  rtems_rfs_file_handle* file = iop->file_info;
+  rtems_rfs_file_handle* file = iop->pathinfo.node_access;
   rtems_rfs_pos          pos;
   const uint8_t*         data = buffer;
@@ -272,5 +272,5 @@
                             int            whence)
 {
-  rtems_rfs_file_handle* file = iop->file_info;
+  rtems_rfs_file_handle* file = iop->pathinfo.node_access;
   rtems_rfs_pos          pos;
   int                    rc;
@@ -306,5 +306,5 @@
                                 rtems_off64_t  length)
 {
-  rtems_rfs_file_handle* file = iop->file_info;
+  rtems_rfs_file_handle* file = iop->pathinfo.node_access;
   int                    rc;
 
Index: cpukit/libfs/src/rfs/rtems-rfs-rtems.h
===================================================================
--- cpukit/libfs/src/rfs/rtems-rfs-rtems.h	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libfs/src/rfs/rtems-rfs-rtems.h	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -195,5 +195,5 @@
  */
 #define rtems_rfs_rtems_get_iop_ino(_iop) \
-  ((intptr_t)(_iop)->file_info)
+  ((intptr_t)(_iop)->pathinfo.node_access)
 
 /**
Index: cpukit/libnetworking/lib/ftpfs.c
===================================================================
--- cpukit/libnetworking/lib/ftpfs.c	(revision 106d8f5e741f0b807bba55acdb89789a1170f0cc)
+++ cpukit/libnetworking/lib/ftpfs.c	(revision fd2b1634bb0698c7cf6b1dd2489bab2777f34831)
@@ -959,5 +959,5 @@
     : "RETR ";
   uint32_t client_address = 0;
-  char *location = iop->file_info;
+  char *location = iop->pathinfo.node_access;
 
   /* Invalidate data handle */
@@ -983,5 +983,5 @@
        * option settings.
        */
-      iop->handlers = &rtems_ftpfs_root_handlers;
+      iop->pathinfo.handlers = &rtems_ftpfs_root_handlers;
 
       return 0;
@@ -1167,5 +1167,5 @@
    * The caller of this routine has striped off the mount prefix from the path.
    * We need to store this path here or otherwise we would have to do this job
-   * again.  The path is used in rtems_ftpfs_open() via iop->file_info.
+   * again.  The path is used in rtems_ftpfs_open() via iop->pathinfo.node_access.
    */
   char *pathname_dup = malloc(pathnamelen + 1);
