aboutsummaryrefslogtreecommitdiffstats
path: root/module/os/linux/zfs
diff options
context:
space:
mode:
authorAlexander Motin <[email protected]>2023-02-13 16:21:53 -0500
committerGitHub <[email protected]>2023-02-13 13:21:53 -0800
commit87a4dfa561900dafaa446661538faa485af5f17a (patch)
treed9edee838bd126792c1900eeba09909f170b1bd3 /module/os/linux/zfs
parent7883ea2234fac0cd976eb2ca0c6b51e7a5da7668 (diff)
Improve arc_read() error reporting
Debugging reported NULL de-reference panic in dnode_hold_impl() I found that for certain types of errors arc_read() may only return error code, but not properly report it via done and pio arguments. Lack of done calls may result in reference and/or memory leaks in higher level code. Lack of error reporting via pio may result in unnoticed errors there. For example, dbuf_read(), where dbuf_read_impl() ignores arc_read() return, relies completely on the pio mechanism and missed the errors. This patch makes arc_read() to always call done callback and always propagate errors to parent zio, if either is provided. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Brian Atkinson <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Closes #14454
Diffstat (limited to 'module/os/linux/zfs')
0 files changed, 0 insertions, 0 deletions