HomeFreeBSD

libzfs: Fail making a dataset handle gracefully

Description

libzfs: Fail making a dataset handle gracefully

When a dataset is in the process of being received it gets marked as
inconsistent and should not be used. We should check for this when
opening a dataset handle in libzfs and return with an appropriate error
set, rather than hitting an abort because of the incomplete data.

zfs_open() passes errno to zfs_standard_error() after observing
make_dataset_handle() fail, which ends up aborting if errno is 0.
Set errno before returning where we know it has not been set already.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ryan Moeller <freqlabs@FreeBSD.org>
Closes #13077

Details

Provenance
freqlabsAuthored on Feb 18 2022, 9:09 PM
Tony Hutter <hutter2@llnl.gov>Committed on Jun 6 2022, 11:57 PM
Parents
rG56eed508d402: libzfs: mount: don't leak mnt_param_t if mnt_func fails
Branches
Unknown
Tags
Unknown