HomeFreeBSD

Fix ZDB to dump projid for projectquota enabled (#16291)

Description

Fix ZDB to dump projid for projectquota enabled (#16291)

ZDB is supposed to dump "projid" via dump_znode(), when projectquota

is enabled.

static void
dump_znode(objset_t *os, uint64_t object, void *data, size_t size)
{
...

if (dmu_objset_projectquota_enabled(os) && (pflags & ZFS_PROJID)) {

uint64_t projid;

if (sa_lookup(hdl, sa_attr_table[ZPL_PROJID], &projid,

	    sizeof (uint64_t)) == 0)
		(void) printf("\tprojid %llu\n", (u_longlong_t)projid);
    }

...

}

But its not dumping "projid", even for project quota enabled.

dmu_objset_projectquota_enabled() does following 3 checks,

boolean_t
dmu_objset_projectquota_enabled(objset_t *os)
{

        return (file_cbs[os->os_phys->os_type] != NULL &&
            DMU_PROJECTUSED_DNODE(os) != NULL &&
            spa_feature_is_enabled(os->os_spa,
		SPA_FEATURE_PROJECT_QUOTA));

}

It fails on file_cbs[] check. file_cbs[] gets initialised via
dmu_objset_register_type(); which is not done for the ZDB, its done for
the kernel via zfs_init().

Register a dummy callback handle for the DMU_OST_ZFS type in
ZDB main() function to dump the projid for projectquota enabled.

Signed-off-by: Jitendra Patidar <jitendra.patidar@nutanix.com>
Closes #16290
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>

Details

Provenance
Jitendra Patidar <jitendra.patidar@nutanix.com>Authored on Jul 26 2024, 12:18 AM
GitHub <noreply@github.com>Committed on Jul 26 2024, 12:18 AM
Parents
rG7ddc1f737f61: zil: add stats for commit failure/fallback (#16315)
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG2ed1aebaf605: Fix ZDB to dump projid for projectquota enabled (#16291) (authored by Jitendra Patidar <jitendra.patidar@nutanix.com>).Jul 26 2024, 12:18 AM