On 2013-07-28 06:46, Chris Johns wrote:
WARNING - log/mrfs_fstime did not appear to complete execution

This one is a little more interesting. The test is correct and the RFS fails however it passes this ...

  f = open (file03, O_CREAT | O_WRONLY);
  close (f);
  sleep (for_a_few_seconds);
  f = open (file03, O_TRUNC | O_WRONLY);
  close (f);

RTEMS implements the truncate in the open call for the file system with an ftruncate call. In this case the file system follows the truncate call's requirements of not updating the mtime and ctime fields, however open states ..

For ftruncate we have this:

http://pubs.opengroup.org/onlinepubs/009695399/functions/ftruncate.html

"Upon successful completion, if /fildes/ refers to a regular file, the /ftruncate/() function shall mark for update the /st_ctime/ and /st_mtime/ fields of the file and the S_ISUID and S_ISGID bits of the file mode may be cleared. If the /ftruncate/() function is unsuccessful, the file is unaffected."

[...]

"The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:

 *

   The DESCRIPTION is changed to indicate that if the file size is
   changed, and if the file is a regular file, the S_ISUID and S_ISGID
   bits in the file mode may be cleared."


 "If O_TRUNC is set and the file did previously exist, upon
  successful completion, open() shall mark for update the last
  data modification and last file status change timestamps of
  the file."

I assume the open's requirements override the truncate's requirements here. I will fix the RFS to follow the truncate requirements and add this test to the test suite. I suspect the fix for this requires the truncate op handler needing a parameter to say how to handle the time fields.

If I read this correctly, then the O_TRUNC and ftruncate() are similar with respect to the mtime and ctime update. What is unclear is if this should only happen if the file size changes.

Regarding the atime I would not support this.  See also

http://en.wikipedia.org/wiki/Stat_%28system_call%29#Criticism_of_atime

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : [email protected]
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to