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