From 019dca0199e407af2c0c312bd50bcbdec4f4bbbd Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Wed, 27 Mar 2019 16:19:02 +0000 Subject: [PATCH] fusefs: delete dead code in fuse_vnop_setattr The dead code in question was a broken and incomplete attempt to support the default_permissions mount option during VOP_SETATTR. There wasn't anything there worth saving; I'll have to rewrite it later. Reported by: Coverity Coverity CID: 1008668 Sponsored by: The FreeBSD Foundation --- sys/fs/fuse/fuse_internal.c | 3 +-- sys/fs/fuse/fuse_internal.h | 5 +++++ sys/fs/fuse/fuse_vnops.c | 13 ------------- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/sys/fs/fuse/fuse_internal.c b/sys/fs/fuse/fuse_internal.c index e87456ce1fc..2a5a409b2ec 100644 --- a/sys/fs/fuse/fuse_internal.c +++ b/sys/fs/fuse/fuse_internal.c @@ -106,8 +106,7 @@ static int isbzero(void *buf, size_t len); #endif -/* access */ - +/* Synchronously send a FUSE_ACCESS operation */ int fuse_internal_access(struct vnode *vp, mode_t mode, diff --git a/sys/fs/fuse/fuse_internal.h b/sys/fs/fuse/fuse_internal.h index e5aed822101..0b75f19e2bc 100644 --- a/sys/fs/fuse/fuse_internal.h +++ b/sys/fs/fuse/fuse_internal.h @@ -156,7 +156,12 @@ fuse_iosize(struct vnode *vp) #define FACCESS_VA_VALID 0x01 #define FACCESS_DO_ACCESS 0x02 +/* + * Caller must be the directory's owner, or the superuser, or the sticky bit + * must not be set + */ #define FACCESS_STICKY 0x04 +/* Caller requires access to change file's owner */ #define FACCESS_CHOWN 0x08 #define FACCESS_NOCHECKSPY 0x10 #define FACCESS_SETGID 0x12 diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 42fc1a7750f..e2b5bf4d791 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -1582,7 +1582,6 @@ fuse_vnop_setattr(struct vop_setattr_args *ap) struct vattr *vap = ap->a_vap; struct ucred *cred = ap->a_cred; struct thread *td = curthread; - struct fuse_dispatcher fdi; struct fuse_setattr_in *fsai; struct fuse_access_param facp; @@ -1658,19 +1657,7 @@ fuse_vnop_setattr(struct vop_setattr_args *ap) err = EROFS; goto out; } - if (fsai->valid & ~FATTR_SIZE) { - /*err = fuse_internal_access(vp, VADMIN, context, &facp); */ - /*XXX */ - err = 0; - } - facp.facc_flags &= ~FACCESS_XQUERIES; - if (err && !(fsai->valid & ~(FATTR_ATIME | FATTR_MTIME)) && - vap->va_vaflags & VA_UTIMES_NULL) { - err = fuse_internal_access(vp, VWRITE, &facp, td, cred); - } - if (err) - goto out; if ((err = fdisp_wait_answ(&fdi))) goto out; vtyp = IFTOVT(((struct fuse_attr_out *)fdi.answ)->attr.mode);