ZFS: support inode type embed into its ID

This is a speedup used in some ZFS version. This trips GRUB and makes it
unable to access directories. Just skip it for now and revisit
if we ever need this speedup.

Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Vladimir Serbinenko 2023-07-03 19:41:27 +02:00
parent 34a3adff82
commit 42a831d746

View File

@ -73,6 +73,8 @@ GRUB_MOD_LICENSE ("GPLv3+");
#define DATA_TYPE_NVLIST 19
#define DATA_TYPE_NVLIST_ARRAY 20
#define DNODE_NUM_MASK 0xffffffffffffULL
#ifndef GRUB_UTIL
static grub_dl_t my_mod;
#endif
@ -2669,6 +2671,8 @@ dnode_get (dnode_end_t * mdn, grub_uint64_t objnum, grub_uint8_t type,
grub_err_t err;
grub_zfs_endian_t endian;
objnum &= DNODE_NUM_MASK;
blksz = grub_zfs_to_cpu16 (mdn->dn.dn_datablkszsec,
mdn->endian) << SPA_MINBLOCKSHIFT;
epbs = zfs_log2 (blksz) - DNODE_SHIFT;