<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-12-09)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>ccj</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-12-09      Chris Johns <chrisj@rtems.org>

        PR 1968/filesystem
        * libfs/src/rfs/rtems-rfs-file.c: Fix to the seek bug where a seek
        to 0 after reading the end of the file did not point to the
        correct block.
        * libfs/src/rfs/rtems-rfs-rtems.h,
        libfs/src/rfs/rtems-rfs-trace.c: Fix the trace flags. Used to fix
        the bug.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.3076&r2=text&tr2=1.3077&diff_format=h">M</a></td><td width='1%'>1.3077</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.9&diff_format=h">M</a></td><td width='1%'>1.9</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-file.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-rtems.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-trace.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.3076 rtems/cpukit/ChangeLog:1.3077
--- rtems/cpukit/ChangeLog:1.3076       Thu Dec  8 08:15:05 2011
+++ rtems/cpukit/ChangeLog      Fri Dec  9 01:21:00 2011
</font><font color='#997700'>@@ -1,3 +1,14 @@
</font><font color='#000088'>+2011-12-09      Chris Johns <chrisj@rtems.org>
+
+       PR 1968/filesystem
+       * libfs/src/rfs/rtems-rfs-file.c: Fix to the seek bug where a seek
+       to 0 after reading the end of the file did not point to the
+       correct block.
+        * libfs/src/rfs/rtems-rfs-rtems.h,
+       libfs/src/rfs/rtems-rfs-trace.c: Fix the trace flags. Used to fix
+       the bug.
+<span style="background-color: #FF0000">       </span>
+
</font> 2011-12-08        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * rtems/src/rtemsobjectgetname.c:

<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.8 rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.9
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.8     Sun Nov  6 06:44:23 2011
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c Fri Dec  9 01:21:01 2011
</font><font color='#997700'>@@ -424,8 +424,45 @@
</font>    */
   if (pos < rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
                                             handle->shared))
<font color='#000088'>+  {
</font>     rtems_rfs_file_set_bpos (handle, pos);
<font color='#880000'>-
</font><font color='#000088'>+<span style="background-color: #FF0000">    </span>
+    /*
+     * If the file has a block check if it maps to the current position and it
+     * does not release it. That will force us to get the block at the new
+     * position when the I/O starts.
+     */
+    if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
+    {
+      rtems_rfs_buffer_block block;
+      int                    rc;
+<span style="background-color: #FF0000">      </span>
+      rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
+                                     rtems_rfs_file_map (handle),
+                                     rtems_rfs_file_bpos (handle),
+                                     &block);
+      if (rc > 0)
+        return rc;
+      if (rtems_rfs_buffer_bnum (&handle->buffer) != block)
+      {<span style="background-color: #FF0000">        </span>
+        rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
+                                              rtems_rfs_file_buffer (handle));
+        if (rc > 0)
+          return rc;
+      }
+    }
+  }
+  else
+  {
+    /*
+     * The seek is outside the current file so release any buffer. A write will
+     * extend the file.
+     */
+    int rc = rtems_rfs_file_io_release (handle);
+    if (rc > 0)
+      return rc;
+  }
+<span style="background-color: #FF0000">  </span>
</font>   *new_pos = pos;
   return 0;
 }
<font color='#997700'>@@ -441,23 +478,25 @@
</font>   if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
     printf ("rtems-rfs: file-set-size: size=%" PRIu64 "\n", new_size);
 
<font color='#000088'>+  size = rtems_rfs_file_size (handle);
+<span style="background-color: #FF0000">  </span>
</font>   /*
<font color='#880000'>-   * Short cut for the common truncate on open call.
</font><font color='#000088'>+   * If the file is same size do nothing else grow or shrink it ?
+   *
+   * If the file does not change size do not update the times.
</font>    */
<font color='#880000'>-  if (new_size == 0)
-  {
-    rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
-    if (rc > 0)
-      return rc;
-  }
-  else
</font><font color='#000088'>+  if (size != new_size)
</font>   {
<font color='#880000'>-    size = rtems_rfs_file_size (handle);
-
</font>     /*
<font color='#880000'>-     * If the file is same size do nothing else grow or shrink it ?
</font><font color='#000088'>+     * Short cut for the common truncate on open call.
</font>      */
<font color='#880000'>-    if (size != new_size)
</font><font color='#000088'>+    if (new_size == 0)
+    {
+      rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
+      if (rc > 0)
+        return rc;
+    }
+    else
</font>     {
       if (size < new_size)
       {
<font color='#997700'>@@ -567,14 +606,14 @@
</font>                                          rtems_rfs_file_bpos (handle));
       }
     }
<font color='#880000'>-  }
-
-  handle->shared->size.count  = rtems_rfs_block_map_count (map);
-  handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
</font> 
<font color='#880000'>-  if (rtems_rfs_file_update_mtime (handle))
-    handle->shared->mtime = time (NULL);
</font><font color='#000088'>+    handle->shared->size.count  = rtems_rfs_block_map_count (map);
+    handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
</font> 
<font color='#000088'>+    if (rtems_rfs_file_update_mtime (handle))
+      handle->shared->mtime = time (NULL);
+  }
+<span style="background-color: #FF0000">  </span>
</font>   return 0;
 }
 

<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.6 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.7
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.6    Tue Mar 15 02:32:39 2011
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h        Fri Dec  9 01:21:01 2011
</font><font color='#997700'>@@ -25,12 +25,12 @@
</font> #include <errno.h>
 
 /**
<font color='#880000'>- * RTEMS RFS RTEMS Error Enable. Set to 1 to printing of errors. Default is off.
</font><font color='#000088'>+ * RTEMS RFS RTEMS Error Enable. Set to 1 for printing of errors. Default is off.
</font>  */
 #define RTEMS_RFS_RTEMS_ERROR 0
 
 /**
<font color='#880000'>- * RTEMS RFS RTEMS Trace Enable. Set to 1 to printing of errors. Default is off.
</font><font color='#000088'>+ * RTEMS RFS RTEMS Trace Enable. Set to 1 for printing of errors. Default is off.
</font>  */
 #define RTEMS_RFS_RTEMS_TRACE 0
 
<font color='#997700'>@@ -72,13 +72,14 @@
</font> #define RTEMS_RFS_RTEMS_DEBUG_READLINK      (1 << 9)
 #define RTEMS_RFS_RTEMS_DEBUG_FCHMOD        (1 << 10)
 #define RTEMS_RFS_RTEMS_DEBUG_STAT          (1 << 11)
<font color='#880000'>-#define RTEMS_RFS_RTEMS_DEBUG_DIR_RMNOD     (1 << 12)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_OPEN     (1 << 13)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_CLOSE    (1 << 14)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_READ     (1 << 15)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_WRITE    (1 << 16)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_LSEEK    (1 << 17)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_FTRUNC   (1 << 18)
</font><font color='#000088'>+#define RTEMS_RFS_RTEMS_DEBUG_RENAME        (1 << 12)
+#define RTEMS_RFS_RTEMS_DEBUG_DIR_RMNOD     (1 << 13)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_OPEN     (1 << 14)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_CLOSE    (1 << 15)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_READ     (1 << 16)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_WRITE    (1 << 17)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_LSEEK    (1 << 18)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_FTRUNC   (1 << 19)
</font> 
 /**
  * Call to check if this part is bring traced. If RTEMS_RFS_RTEMS_TRACE is

<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.4 rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.5
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.4    Sun Nov  6 06:44:24 2011
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c        Fri Dec  9 01:21:02 2011
</font><font color='#997700'>@@ -92,7 +92,8 @@
</font>     "symlink-read",
     "file-open",
     "file-close",
<font color='#880000'>-    "file-io"
</font><font color='#000088'>+    "file-io",
+    "file-set"
</font>   };
 
   rtems_rfs_trace_mask set_value = 0;
<font color='#997700'>@@ -140,9 +141,9 @@
</font>           if (strcmp (argv[arg], table[t]) == 0)
           {
             if (set)
<font color='#880000'>-              set_value = 1 << t;
</font><font color='#000088'>+              set_value = 1ULL << t;
</font>             else
<font color='#880000'>-              clear_value = 1 << t;
</font><font color='#000088'>+              clear_value = 1ULL << t;
</font>             break;
           }
         }
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>