Fix up current time computation (ensure 64-bit math is used).
authorMichael Vrable <mvrable@cs.ucsd.edu>
Mon, 24 Aug 2009 22:43:08 +0000 (15:43 -0700)
committerMichael Vrable <mvrable@turin.ucsd.edu>
Mon, 24 Aug 2009 22:43:08 +0000 (15:43 -0700)
inode.c
main.c
nfs3/Makefile
nfs3/nfs3.c

diff --git a/inode.c b/inode.c
index b9da798..4437c04 100644 (file)
--- a/inode.c
+++ b/inode.c
@@ -21,7 +21,7 @@ int64_t bluesky_get_current_time()
 {
     GTimeVal t;
     g_get_current_time(&t);
-    return t.tv_sec * 1000000 + t.tv_usec;
+    return (int64_t)t.tv_sec * 1000000 + t.tv_usec;
 }
 
 /* Unfortunately a glib hash table is only guaranteed to be able to store
diff --git a/main.c b/main.c
index 9c92356..596f7cb 100644 (file)
--- a/main.c
+++ b/main.c
@@ -21,6 +21,8 @@ int main(int argc, char *argv[])
 
     printf("BlueSkyFS starting...\n");
 
+    printf("  time = %lld\n", bluesky_get_current_time());
+
     BlueSkyInode *root = bluesky_new_inode(1, BLUESKY_DIRECTORY);
 
     bluesky_directory_insert(root, "foo", 2);
index 59ee50b..1a5f040 100644 (file)
@@ -1,6 +1,6 @@
 PACKAGES=glib-2.0 gthread-2.0
 DEBUG=-g
-CFLAGS=-O -Wall -D_FILE_OFFSET_BITS=64 $(DEBUG) -I.. \
+CFLAGS=-Wall -D_FILE_OFFSET_BITS=64 $(DEBUG) -I.. \
        $(shell pkg-config --cflags $(PACKAGES))
 LDFLAGS=$(DEBUG) $(shell pkg-config --libs $(PACKAGES))
 
index da8d76b..aaf23b4 100644 (file)
@@ -238,6 +238,11 @@ nfsproc3_create_3_svc(create3args *argp, struct svc_req *rqstp)
     file = bluesky_new_inode(bluesky_fs_alloc_inode(fs), BLUESKY_REGULAR);
     file->nlink = 1;
     file->mode = 0755;
+    int64_t time = bluesky_get_current_time();
+    printf("time: %lld\n", time);
+    file->mtime = time;
+    file->ctime = time;
+    file->atime = time;
     bluesky_insert_inode(fs, file);
     bluesky_directory_insert(dir, argp->where.name, file->inum);