zfs/module
Matthew Macy 57dc5d42b1
dmu_zfetch: don't leak unreferenced stream when zfetch is freed
Currently streams are only freed when:
  - They have no referencing zfetch and and their I/O references
    go to zero.
  - They are more than 2s old and a new I/O request comes in on
    the same zfetch.

This means that we will leak unreferenced streams when their zfetch
structure is freed.

This change checks the reference count on a stream at zfetch free
time. If it is zero we free it immediately. If it has remaining
references we allow the prefetch callback to free it at I/O
completion time.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Adam Moss <c@yotes.com>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #11052
2020-10-13 21:03:36 -07:00
..
avl Links in Source Files 2020-09-02 09:42:12 -07:00
icp Prefix zfs internal endian checks with _ZFS 2020-07-28 13:02:49 -07:00
lua FreeBSD: Reduce stack usage of Lua 2020-09-22 16:03:11 -07:00
nvpair Links in Source Files 2020-09-02 09:42:12 -07:00
os FreeBSD: use cache_rename if available 2020-10-13 16:41:26 -07:00
spl Cleanup linux module kbuild files 2020-06-10 09:24:15 -07:00
unicode Throw const on some strings 2020-10-02 17:44:10 -07:00
zcommon Rename acltype=posixacl to acltype=posix 2020-09-16 12:26:06 -07:00
zfs dmu_zfetch: don't leak unreferenced stream when zfetch is freed 2020-10-13 21:03:36 -07:00
zstd aarch64: Use proper guards for NEON instructions 2020-10-13 21:01:40 -07:00
.gitignore Cleanup linux module kbuild files 2020-06-10 09:24:15 -07:00
Kbuild.in Add zstd support to zfs 2020-08-20 10:30:06 -07:00
Makefile.bsd module/zstd: pass -U__BMI__ 2020-08-27 15:50:13 -07:00
Makefile.in Fix Linux modules uninstall 2020-10-08 20:07:10 -07:00