Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Dec 2018 17:28:40 +0000 (UTC)
From:      Alan Somers <asomers@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r341598 - head/lib/libc/sys
Message-ID:  <201812051728.wB5HSes8099327@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: asomers
Date: Wed Dec  5 17:28:40 2018
New Revision: 341598
URL: https://svnweb.freebsd.org/changeset/base/341598

Log:
  stat(2): clarify which syscalls modify file timestamps
  
  The list of syscalls that modify st_atim, st_mtim, and st_ctim was quite out
  of date and probably not accurate to begin with.  Update it, and make it
  clear that the list is open-ended.
  
  Reviewed by:	kib
  MFC after:	2 weeks
  Differential Revision:	https://reviews.freebsd.org/D18410

Modified:
  head/lib/libc/sys/stat.2

Modified: head/lib/libc/sys/stat.2
==============================================================================
--- head/lib/libc/sys/stat.2	Wed Dec  5 17:13:33 2018	(r341597)
+++ head/lib/libc/sys/stat.2	Wed Dec  5 17:28:40 2018	(r341598)
@@ -28,7 +28,7 @@
 .\"     @(#)stat.2	8.4 (Berkeley) 5/1/95
 .\" $FreeBSD$
 .\"
-.Dd November 11, 2018
+.Dd December 5, 2018
 .Dt STAT 2
 .Os
 .Sh NAME
@@ -193,45 +193,53 @@ are:
 .Bl -tag -width ".Va st_birthtim"
 .It Va st_atim
 Time when file data was last accessed.
-Changed by the
-.Xr mknod 2 ,
-.Xr utimes 2 ,
+Changed implicitly by syscalls such as
 .Xr read 2
 and
-.Xr readv 2
-system calls.
+.Xr readv 2 ,
+and explicitly by
+.Xr utimes 2 .
 .It Va st_mtim
 Time when file data was last modified.
-Changed by the
+Changed implicitly by syscalls such as
+.Xr truncate 2 ,
+.Xr write 2 ,
+and
+.Xr writev 2 ,
+and explicitly by
+.Xr utimes 2 .
+Also, any syscall which modifies directory content changes the
+.Va st_mtim
+for the affected directory.
+For instance,
+.Xr creat 2 ,
 .Xr mkdir 2 ,
-.Xr mkfifo 2 ,
-.Xr mknod 2 ,
-.Xr utimes 2 ,
-.Xr write 2
+.Xr rename 2 ,
+.Xr link 2 ,
 and
-.Xr writev 2
-system calls.
+.Xr unlink 2 .
 .It Va st_ctim
 Time when file status was last changed (inode data modification).
-Changed by the
+Changed implicitly by any syscall that affects file metadata, including
+.Va st_mtim ,
+such as
 .Xr chflags 2 ,
 .Xr chmod 2 ,
 .Xr chown 2 ,
+.Xr truncate 2 ,
+.Xr utimes 2 ,
+and
+.Xr write 2 .
+Also, any syscall which modifies directory content changes the
+.Va st_ctim
+for the affected directory.
+For instance,
 .Xr creat 2 ,
-.Xr link 2 ,
 .Xr mkdir 2 ,
-.Xr mkfifo 2 ,
-.Xr mknod 2 ,
 .Xr rename 2 ,
-.Xr rmdir 2 ,
-.Xr symlink 2 ,
-.Xr truncate 2 ,
-.Xr unlink 2 ,
-.Xr utimes 2 ,
-.Xr write 2
+.Xr link 2 ,
 and
-.Xr writev 2
-system calls.
+.Xr unlink 2 .
 .It Va st_birthtim
 Time when the inode was created.
 .El



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201812051728.wB5HSes8099327>