Page MenuHomeFreeBSD

D43590.diff
No OneTemporary

D43590.diff

diff --git a/sys/fs/fuse/fuse_internal.c b/sys/fs/fuse/fuse_internal.c
--- a/sys/fs/fuse/fuse_internal.c
+++ b/sys/fs/fuse/fuse_internal.c
@@ -325,7 +325,6 @@
else
return;
- vattr_null(vp_cache_at);
vp_cache_at->va_fsid = mp->mnt_stat.f_fsid.val[0];
vp_cache_at->va_fileid = attr->ino;
vp_cache_at->va_mode = attr->mode & ~S_IFMT;
diff --git a/sys/fs/fuse/fuse_node.c b/sys/fs/fuse/fuse_node.c
--- a/sys/fs/fuse/fuse_node.c
+++ b/sys/fs/fuse/fuse_node.c
@@ -155,7 +155,14 @@
{
fvdat->nid = nodeid;
LIST_INIT(&fvdat->handles);
+
vattr_null(&fvdat->cached_attrs);
+ fvdat->cached_attrs.va_birthtime.tv_sec = -1;
+ fvdat->cached_attrs.va_birthtime.tv_nsec = 0;
+ fvdat->cached_attrs.va_fsid = VNOVAL;
+ fvdat->cached_attrs.va_gen = 0;
+ fvdat->cached_attrs.va_rdev = NODEV;
+
if (nodeid == FUSE_ROOT_ID) {
vp->v_vflag |= VV_ROOT;
}
diff --git a/tests/sys/fs/fusefs/getattr.cc b/tests/sys/fs/fusefs/getattr.cc
--- a/tests/sys/fs/fusefs/getattr.cc
+++ b/tests/sys/fs/fusefs/getattr.cc
@@ -246,12 +246,15 @@
EXPECT_EQ(ino, sb.st_ino);
EXPECT_EQ(S_IFREG | 0644, sb.st_mode);
- //st_birthtim and st_flags are not supported by protocol 7.8. They're
- //only supported as OS-specific extensions to OSX.
- //EXPECT_EQ(, sb.st_birthtim);
- //EXPECT_EQ(, sb.st_flags);
-
- //FUSE can't set st_blksize until protocol 7.9
+ /*
+ * st_birthtim and st_flags are not supported by the fuse protocol.
+ * They're only supported as OS-specific extensions to OSX. For
+ * birthtime, the convention for "not supported" is "negative one
+ * second".
+ */
+ EXPECT_EQ(-1, sb.st_birthtim.tv_sec);
+ EXPECT_EQ(0, sb.st_birthtim.tv_nsec);
+ EXPECT_EQ(0u, sb.st_flags);
}
/*
diff --git a/tests/sys/fs/fusefs/lookup.cc b/tests/sys/fs/fusefs/lookup.cc
--- a/tests/sys/fs/fusefs/lookup.cc
+++ b/tests/sys/fs/fusefs/lookup.cc
@@ -112,12 +112,15 @@
// fuse(4) does not _yet_ support inode generations
//EXPECT_EQ(generation, sb.st_gen);
- //st_birthtim and st_flags are not supported by protocol 7.8. They're
- //only supported as OS-specific extensions to OSX.
- //EXPECT_EQ(, sb.st_birthtim);
- //EXPECT_EQ(, sb.st_flags);
-
- //FUSE can't set st_blksize until protocol 7.9
+ /*
+ * st_birthtim and st_flags are not supported by the fuse protocol.
+ * They're only supported as OS-specific extensions to OSX. For
+ * birthtime, the convention for "not supported" is "negative one
+ * second".
+ */
+ EXPECT_EQ(-1, sb.st_birthtim.tv_sec);
+ EXPECT_EQ(0, sb.st_birthtim.tv_nsec);
+ EXPECT_EQ(0u, sb.st_flags);
}
/*

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 2:43 PM (21 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14660193
Default Alt Text
D43590.diff (2 KB)

Event Timeline