mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-24 17:05:01 +03:00
In zfs_zaccess_dataset_check(), we have the following subexpression:
(!IS_DEVVP(ZTOV(zp)) ||
(IS_DEVVP(ZTOV(zp)) && (v4_mode & WRITE_MASK_ATTRS)))
When !IS_DEVVP(ZTOV(zp)) is false, IS_DEVVP(ZTOV(zp)) is true under the
law of the excluded middle since we are not doing pseudoboolean alegbra.
Therefore doing:
(IS_DEVVP(ZTOV(zp)) && (v4_mode & WRITE_MASK_ATTRS))
Is unnecessary and we can just do:
(v4_mode & WRITE_MASK_ATTRS)
The Linux 5.16.14 kernel's coccicheck caught this. The semantic
patch that caught it was:
./scripts/coccinelle/misc/excluded_middle.cocci
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14372
|
||
|---|---|---|
| .. | ||
| abd_os.c | ||
| arc_os.c | ||
| crypto_os.c | ||
| dmu_os.c | ||
| event_os.c | ||
| hkdf.c | ||
| kmod_core.c | ||
| spa_os.c | ||
| sysctl_os.c | ||
| vdev_file.c | ||
| vdev_geom.c | ||
| vdev_label_os.c | ||
| zfs_acl.c | ||
| zfs_ctldir.c | ||
| zfs_debug.c | ||
| zfs_dir.c | ||
| zfs_file_os.c | ||
| zfs_ioctl_compat.c | ||
| zfs_ioctl_os.c | ||
| zfs_racct.c | ||
| zfs_vfsops.c | ||
| zfs_vnops_os.c | ||
| zfs_znode.c | ||
| zio_crypt.c | ||
| zvol_os.c | ||