]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Remove unimplemented virus scanning hooks
authorRyan Moeller <ryan@iXsystems.com>
Tue, 11 May 2021 05:02:25 +0000 (01:02 -0400)
committerGitHub <noreply@github.com>
Tue, 11 May 2021 05:02:25 +0000 (22:02 -0700)
Reviewed-by: Adam Moss <c@yotes.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
Closes #11972

include/os/freebsd/spl/sys/vfs.h
include/os/freebsd/zfs/sys/zfs_vfsops_os.h
include/os/linux/zfs/sys/zfs_vfsops_os.h
man/man8/zfsprops.8
module/os/freebsd/zfs/zfs_vfsops.c
module/os/freebsd/zfs/zfs_vnops_os.c
module/os/linux/zfs/zfs_vfsops.c
module/os/linux/zfs/zfs_vnops_os.c

index a432f6c5673926dc4d087ca97a431b6356aadf80..22d57cc473e24ae1a7c3cdf99919cd2404ee49be 100644 (file)
@@ -55,8 +55,6 @@ typedef       int     umode_t;
 #define        VFS_NOSETUID    MNT_NOSUID
 #define        VFS_NOEXEC      MNT_NOEXEC
 
-#define        fs_vscan(vp, cr, async) (0)
-
 #define        VROOT           VV_ROOT
 
 #define        XU_NGROUPS      16
index a263b48f7517e86903114d66d2a0fd068cb5bfa1..ccbbf4f73224bc6e91f0732157a3791e9a515757 100644 (file)
@@ -98,7 +98,6 @@ struct zfsvfs {
        struct zfsctl_root      *z_ctldir;      /* .zfs directory pointer */
        boolean_t       z_show_ctldir;  /* expose .zfs in the root dir */
        boolean_t       z_issnap;       /* true if this is a snapshot */
-       boolean_t       z_vscan;        /* virus scan on/off */
        boolean_t       z_use_fuids;    /* version allows fuids */
        boolean_t       z_replay;       /* set during ZIL replay */
        boolean_t       z_use_sa;       /* version allow system attributes */
index 7b4a1aac9aad9475a3d87ecddf59a801fbc1a89e..8e03ae99a7fd2f895908fa59f1044d6998c08dde 100644 (file)
@@ -113,7 +113,6 @@ struct zfsvfs {
        struct inode    *z_ctldir;      /* .zfs directory inode */
        boolean_t       z_show_ctldir;  /* expose .zfs in the root dir */
        boolean_t       z_issnap;       /* true if this is a snapshot */
-       boolean_t       z_vscan;        /* virus scan on/off */
        boolean_t       z_use_fuids;    /* version allows fuids */
        boolean_t       z_replay;       /* set during ZIL replay */
        boolean_t       z_use_sa;       /* version allow system attributes */
index ec7d5d27873bb04254d076151acc164e3fac87ca..9ae77e7bfeb0fd521d8b7326d23cafba684fa7ed 100644 (file)
@@ -1775,7 +1775,7 @@ In addition to enabling this property, the virus scan service must also be
 enabled for virus scanning to occur.
 The default value is
 .Sy off .
-This property is not used on Linux.
+This property is not used by OpenZFS.
 .It Sy xattr Ns = Ns Sy on Ns | Ns Sy off Ns | Ns Sy sa
 Controls whether extended attributes are enabled for this file system. Two
 styles of extended attributes are supported either directory based or system
index bbf2d955579eb9d77678aad8c7d3212d34991baa..8aba11f3f7c275f63cb2388c0b9db4b60ea0897c 100644 (file)
@@ -569,14 +569,6 @@ snapdir_changed_cb(void *arg, uint64_t newval)
        zfsvfs->z_show_ctldir = newval;
 }
 
-static void
-vscan_changed_cb(void *arg, uint64_t newval)
-{
-       zfsvfs_t *zfsvfs = arg;
-
-       zfsvfs->z_vscan = newval;
-}
-
 static void
 acl_mode_changed_cb(void *arg, uint64_t newval)
 {
@@ -738,8 +730,6 @@ zfs_register_callbacks(vfs_t *vfsp)
        error = error ? error : dsl_prop_register(ds,
            zfs_prop_to_name(ZFS_PROP_ACLINHERIT), acl_inherit_changed_cb,
            zfsvfs);
-       error = error ? error : dsl_prop_register(ds,
-           zfs_prop_to_name(ZFS_PROP_VSCAN), vscan_changed_cb, zfsvfs);
        dsl_pool_config_exit(dmu_objset_pool(os), FTAG);
        if (error)
                goto unregister;
index 70aebc125d22a7b5829d90d79665eca7dddabcac..1214f8a2b64b0c7544fb8ee2850740cc6c881486 100644 (file)
@@ -231,15 +231,6 @@ zfs_open(vnode_t **vpp, int flag, cred_t *cr)
                return (SET_ERROR(EPERM));
        }
 
-       if (!zfs_has_ctldir(zp) && zp->z_zfsvfs->z_vscan &&
-           ZTOV(zp)->v_type == VREG &&
-           !(zp->z_pflags & ZFS_AV_QUARANTINED) && zp->z_size > 0) {
-               if (fs_vscan(*vpp, cr, 0) != 0) {
-                       ZFS_EXIT(zfsvfs);
-                       return (SET_ERROR(EACCES));
-               }
-       }
-
        /* Keep a count of the synchronous opens in the znode */
        if (flag & (FSYNC | FDSYNC))
                atomic_inc_32(&zp->z_sync_cnt);
@@ -262,11 +253,6 @@ zfs_close(vnode_t *vp, int flag, int count, offset_t offset, cred_t *cr)
        if ((flag & (FSYNC | FDSYNC)) && (count == 1))
                atomic_dec_32(&zp->z_sync_cnt);
 
-       if (!zfs_has_ctldir(zp) && zp->z_zfsvfs->z_vscan &&
-           ZTOV(zp)->v_type == VREG &&
-           !(zp->z_pflags & ZFS_AV_QUARANTINED) && zp->z_size > 0)
-               VERIFY0(fs_vscan(vp, cr, 1));
-
        ZFS_EXIT(zfsvfs);
        return (0);
 }
index 5d672af0e8aa1e0141d53432bb99e743517f55f8..ff0b0d9df8f0e94db31ee9e14bdd67f8274dc927 100644 (file)
@@ -433,12 +433,6 @@ snapdir_changed_cb(void *arg, uint64_t newval)
        ((zfsvfs_t *)arg)->z_show_ctldir = newval;
 }
 
-static void
-vscan_changed_cb(void *arg, uint64_t newval)
-{
-       ((zfsvfs_t *)arg)->z_vscan = newval;
-}
-
 static void
 acl_mode_changed_cb(void *arg, uint64_t newval)
 {
@@ -511,8 +505,6 @@ zfs_register_callbacks(vfs_t *vfsp)
        error = error ? error : dsl_prop_register(ds,
            zfs_prop_to_name(ZFS_PROP_ACLINHERIT), acl_inherit_changed_cb,
            zfsvfs);
-       error = error ? error : dsl_prop_register(ds,
-           zfs_prop_to_name(ZFS_PROP_VSCAN), vscan_changed_cb, zfsvfs);
        error = error ? error : dsl_prop_register(ds,
            zfs_prop_to_name(ZFS_PROP_NBMAND), nbmand_changed_cb, zfsvfs);
        dsl_pool_config_exit(dmu_objset_pool(os), FTAG);
index 6f3faab04f3b1c0912707d67c814561ec4563abf..24c016c5fcf1c6a0d02f89b145b800cb13f26705 100644 (file)
  *     return (error);                 // done, report error
  */
 
-/*
- * Virus scanning is unsupported.  It would be possible to add a hook
- * here to performance the required virus scan.  This could be done
- * entirely in the kernel or potentially as an update to invoke a
- * scanning utility.
- */
-static int
-zfs_vscan(struct inode *ip, cred_t *cr, int async)
-{
-       return (0);
-}
-
 /* ARGSUSED */
 int
 zfs_open(struct inode *ip, int mode, int flag, cred_t *cr)
@@ -204,15 +192,6 @@ zfs_open(struct inode *ip, int mode, int flag, cred_t *cr)
                return (SET_ERROR(EPERM));
        }
 
-       /* Virus scan eligible files on open */
-       if (!zfs_has_ctldir(zp) && zfsvfs->z_vscan && S_ISREG(ip->i_mode) &&
-           !(zp->z_pflags & ZFS_AV_QUARANTINED) && zp->z_size > 0) {
-               if (zfs_vscan(ip, cr, 0) != 0) {
-                       ZFS_EXIT(zfsvfs);
-                       return (SET_ERROR(EACCES));
-               }
-       }
-
        /* Keep a count of the synchronous opens in the znode */
        if (flag & O_SYNC)
                atomic_inc_32(&zp->z_sync_cnt);
@@ -235,10 +214,6 @@ zfs_close(struct inode *ip, int flag, cred_t *cr)
        if (flag & O_SYNC)
                atomic_dec_32(&zp->z_sync_cnt);
 
-       if (!zfs_has_ctldir(zp) && zfsvfs->z_vscan && S_ISREG(ip->i_mode) &&
-           !(zp->z_pflags & ZFS_AV_QUARANTINED) && zp->z_size > 0)
-               VERIFY(zfs_vscan(ip, cr, 1) == 0);
-
        ZFS_EXIT(zfsvfs);
        return (0);
 }