Initialize timestamps for gofer synthetic children.

Contrary to the comment on the socket test, the failure was due to an issue
with goferfs rather than kernfs.

PiperOrigin-RevId: 353918021
This commit is contained in:
Dean Deng
2021-01-26 12:02:05 -08:00
committed by gVisor bot
parent 203890b134
commit 96bd076e8a
2 changed files with 6 additions and 2 deletions
+5
View File
@@ -90,6 +90,7 @@ type createSyntheticOpts struct {
// * d.isDir().
// * d does not already contain a child with the given name.
func (d *dentry) createSyntheticChildLocked(opts *createSyntheticOpts) {
now := d.fs.clock.Now().Nanoseconds()
child := &dentry{
refs: 1, // held by d
fs: d.fs,
@@ -98,6 +99,10 @@ func (d *dentry) createSyntheticChildLocked(opts *createSyntheticOpts) {
uid: uint32(opts.kuid),
gid: uint32(opts.kgid),
blockSize: usermem.PageSize, // arbitrary
atime: now,
mtime: now,
ctime: now,
btime: now,
readFD: -1,
writeFD: -1,
mmapFD: -1,
+1 -2
View File
@@ -91,8 +91,7 @@ TEST(SocketTest, UnixSocketStat) {
EXPECT_EQ(statbuf.st_mode, S_IFSOCK | (sock_perm & ~mask));
// Timestamps should be equal and non-zero.
// TODO(b/158882152): Sockets currently don't implement timestamps.
if (!IsRunningOnGvisor()) {
if (!IsRunningWithVFS1()) {
EXPECT_NE(statbuf.st_atime, 0);
EXPECT_EQ(statbuf.st_atime, statbuf.st_mtime);
EXPECT_EQ(statbuf.st_atime, statbuf.st_ctime);