From 071c37fce97c3022d46df311042e2a72b5907aa2 Mon Sep 17 00:00:00 2001 From: Mark Date: Sun, 26 Jan 2020 21:06:43 +0200 Subject: [PATCH] Remove .access() vnode operation as UID:GID/mode are stored directly in the vnode itself --- include/sys/fs/node.h | 1 - sys/vfs/vfs_access.c | 18 +----------------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/include/sys/fs/node.h b/include/sys/fs/node.h index 79ac4bd..44fb694 100644 --- a/include/sys/fs/node.h +++ b/include/sys/fs/node.h @@ -44,7 +44,6 @@ struct vnode_operations { off_t (*lseek) (struct ofile *fd, off_t offset, int whence); int (*stat) (struct vnode *at, struct stat *st); - int (*access) (struct vnode *node, uid_t *uid, gid_t *gid, mode_t *mode); int (*chmod) (struct vnode *node, mode_t mode); int (*chown) (struct vnode *node, uid_t uid, gid_t gid); diff --git a/sys/vfs/vfs_access.c b/sys/vfs/vfs_access.c index 35959bf..6e86e27 100644 --- a/sys/vfs/vfs_access.c +++ b/sys/vfs/vfs_access.c @@ -52,24 +52,8 @@ int vfs_access_check(struct vfs_ioctx *ctx, int desm, mode_t mode, uid_t uid, gi } int vfs_access_node(struct vfs_ioctx *ctx, struct vnode *vn, int mode) { - mode_t vn_mode; - uid_t vn_uid; - gid_t vn_gid; - int res; - _assert(ctx); _assert(vn); - if (!vn->op || !vn->op->access) { - vn_mode = vn->mode; - vn_uid = vn->uid; - vn_gid = vn->gid; - } else { - // Filesystem has non-trivial permission storage - if ((res = vn->op->access(vn, &vn_uid, &vn_gid, &vn_mode)) != 0) { - return res; - } - } - - return vfs_access_check(ctx, mode, vn_mode, vn_uid, vn_gid); + return vfs_access_check(ctx, mode, vn->mode, vn->uid, vn->gid); }