mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
Remove unimplemented virus scanning hooks
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
This commit is contained in:
parent
38c6d6cedd
commit
4704be2879
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -175,18 +175,6 @@
|
||||
* 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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user