Use vfs_timestamp() instead of getnanotime() to set timestamps. This

fixee incoherency of pipe timestamps relative to file timestamps in
the usual case where getnanotime() is not used for the latter.  (File
and pipe timestamps are still incoherent relative to real time unless
the vfs_timestamp_precision sysctl is set to 2 or 3).
This commit is contained in:
Bruce Evans 1999-12-26 13:04:52 +00:00
parent ffd344ddbb
commit da211f5bf6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=55112

View File

@ -63,6 +63,7 @@
#include <sys/signalvar.h>
#include <sys/sysproto.h>
#include <sys/pipe.h>
#include <sys/vnode.h>
#include <sys/uio.h>
#include <vm/vm.h>
@ -253,7 +254,7 @@ pipeinit(cpipe)
cpipe->pipe_state = 0;
cpipe->pipe_peer = NULL;
cpipe->pipe_busy = 0;
getnanotime(&cpipe->pipe_ctime);
vfs_timestamp(&cpipe->pipe_ctime);
cpipe->pipe_atime = cpipe->pipe_ctime;
cpipe->pipe_mtime = cpipe->pipe_ctime;
bzero(&cpipe->pipe_sel, sizeof cpipe->pipe_sel);
@ -439,7 +440,7 @@ pipe_read(fp, uio, cred, flags, p)
pipeunlock(rpipe);
if (error == 0)
getnanotime(&rpipe->pipe_atime);
vfs_timestamp(&rpipe->pipe_atime);
unlocked_error:
--rpipe->pipe_busy;
@ -944,7 +945,7 @@ pipe_write(fp, uio, cred, flags, p)
error = 0;
if (error == 0)
getnanotime(&wpipe->pipe_mtime);
vfs_timestamp(&wpipe->pipe_mtime);
/*
* We have something to offer,