diff --git a/fs/proc/include/proc_fs.h b/fs/proc/include/proc_fs.h index c519db918fb0ea3cea48f8d2d7cf9218d18558e9..ed1f6fcb4918c346671ee0dc22419596d74034fc 100644 --- a/fs/proc/include/proc_fs.h +++ b/fs/proc/include/proc_fs.h @@ -89,6 +89,8 @@ struct ProcFileOperations { }; struct ProcDirEntry { + uint uid; + uint gid; mode_t mode; int flags; const struct ProcFileOperations *procFileOps; diff --git a/fs/proc/os_adapt/proc_vfs.c b/fs/proc/os_adapt/proc_vfs.c index 00cfb7ac578447302258fb02c6b85267b299dc91..7cabbaf9eca55130268174104c5e9a705724818c 100644 --- a/fs/proc/os_adapt/proc_vfs.c +++ b/fs/proc/os_adapt/proc_vfs.c @@ -60,11 +60,9 @@ static struct Vnode *EntryToVnode(struct ProcDirEntry *entry) node->fop = &g_procfsFops; node->data = entry; node->type = entry->type; - if (node->type == VNODE_TYPE_DIR) { - node->mode = S_IFDIR | PROCFS_DEFAULT_MODE; - } else { - node->mode = S_IFREG | PROCFS_DEFAULT_MODE; - } + node->uid = entry->uid; + node->gid = entry->gid; + node->mode = entry->mode; return node; }