mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-26 18:05:04 +03:00
When reviewing #13875, I noticed that our FreeBSD code has an issue where it converts from `int64_t` to `int` when calling `vnlru_free{,_vfsops}()`. The result is that if the int64_t is `1 << 36`, the int will be 0, since the low bits are 0. Even when some low bits are set, a value such as `((1 << 36) + 1)` would truncate to 1, which is wrong. There is protection against this on 32-bit platforms, but on 64-bit platforms, there is no check to protect us, so we add a check. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Closes #13882 |
||
|---|---|---|
| .. | ||
| 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 | ||