diff --git a/src/fs/vfs.c b/src/fs/vfs.c index 001fa66d..b9131e62 100644 --- a/src/fs/vfs.c +++ b/src/fs/vfs.c @@ -7,6 +7,7 @@ #include #include #include +#include dirnode_t* vfsroot; hashtable fsfuncs; @@ -330,6 +331,8 @@ int vfs_mount(dirnode_t* ref, char* device, char* mountpoint, char* fs, int moun return result; } +#define ADDTIMETOSTAT(st) st.st_atim = st.st_ctim = st.st_mtim = arch_timekeeper_gettime() + vnode_t* vfs_newnode(char* name, fs_t* fs, void* fsdata){ vnode_t* node = alloc(sizeof(vnode_t)); if(!node) return NULL; @@ -343,6 +346,8 @@ vnode_t* vfs_newnode(char* name, fs_t* fs, void* fsdata){ node->fsdata = fsdata; strcpy(node->name, name); + ADDTIMETOSTAT(node->st); + return node; } @@ -374,6 +379,8 @@ dirnode_t* vfs_newdirnode(char* name, fs_t* fs, void* fsdata, dirnode_t* parent) vnode->fsdata = fsdata; strcpy(vnode->name, name); + ADDTIMETOSTAT(vnode->st); + return node; }