mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Fix unallocated object detection for large_dnode datasets
Fix dmu_object_next() to correctly handle unallocated objects on large_dnode datasets. We implement this by scanning the dnode block until we find the correct offset to be used in dnode_next_offset(). This is necessary because we can't assume *objectp is a hole even if dmu_object_info() returns ENOENT. This fixes a couple of issues with zfs receive on large_dnode datasets. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ned Bass <bass6@llnl.gov> Signed-off-by: loli10K <ezomori.nozomu@gmail.com> Closes #5027 Closes #5532
This commit is contained in:
@@ -1184,6 +1184,7 @@ dnode_is_free(dmu_buf_impl_t *db, int idx, int slots)
|
||||
* errors:
|
||||
* EINVAL - invalid object number.
|
||||
* ENOSPC - hole too small to fulfill "slots" request
|
||||
* ENOENT - the requested dnode is not allocated
|
||||
* EIO - i/o error.
|
||||
* succeeds even for free dnodes.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user