X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fosd-zfs%2Fosd_handler.c;h=5adcd1aaf81bf95e9ea50b4369f735a3c8c15e2c;hp=fc6c7019299adeab88af07bc0c394c2f6310b255;hb=a046e879fcadd601c9a19fd906f82ecbd2d4efd5;hpb=b75ac467c5221971d71ee34a56a0d09a0550a7e2 diff --git a/lustre/osd-zfs/osd_handler.c b/lustre/osd-zfs/osd_handler.c index fc6c701..5adcd1a 100644 --- a/lustre/osd-zfs/osd_handler.c +++ b/lustre/osd-zfs/osd_handler.c @@ -1078,6 +1078,15 @@ static int osd_mount(const struct lu_env *env, if (rc) GOTO(err, rc); +#ifdef ZFS_PROJINHERIT + if (dmu_objset_projectquota_enabled(o->od_os)) { + rc = __osd_obj2dnode(o->od_os, DMU_PROJECTUSED_OBJECT, + &o->od_projectused_dn); + if (rc && rc != -ENOENT) + GOTO(err, rc); + } +#endif + /* 1. initialize oi before any file create or file open */ rc = osd_oi_init(env, o); if (rc) @@ -1158,6 +1167,13 @@ static void osd_umount(const struct lu_env *env, struct osd_device *o) o->od_groupused_dn = NULL; } +#ifdef ZFS_PROJINHERIT + if (o->od_projectused_dn) { + osd_dnode_rele(o->od_projectused_dn); + o->od_projectused_dn = NULL; + } +#endif + if (o->od_os != NULL) { if (!o->od_dt_dev.dd_rdonly) /* force a txg sync to get all commit callbacks */