Whamcloud - gitweb
Revert "LU-1214 ptlrpc: start minimum service threads"
[fs/lustre-release.git] / lustre / osd-zfs / osd_quota.c
index ee2293f..3a0fbda 100644 (file)
@@ -21,7 +21,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
  * Use is subject to license terms.
  *
  * Author: Johann Lombardi <johann@whamcloud.com>
@@ -167,14 +167,19 @@ static struct dt_it *osd_it_acct_init(const struct lu_env *env,
        if (info == NULL)
                RETURN(ERR_PTR(-ENOMEM));
 
-       it = &info->oti_it_quota;
+       OBD_ALLOC_PTR(it);
+       if (it == NULL)
+               RETURN(ERR_PTR(-ENOMEM));
+
        memset(it, 0, sizeof(*it));
        it->oiq_oid = osd_quota_fid2dmu(lu_object_fid(lo));
 
        /* initialize zap cursor */
        rc = osd_zap_cursor_init(&it->oiq_zc, osd->od_os, it->oiq_oid, 0);
-       if (rc)
+       if (rc != 0) {
+               OBD_FREE_PTR(it);
                RETURN(ERR_PTR(rc));
+       }
 
        /* take object reference */
        lu_object_get(lo);
@@ -191,10 +196,13 @@ static struct dt_it *osd_it_acct_init(const struct lu_env *env,
  */
 static void osd_it_acct_fini(const struct lu_env *env, struct dt_it *di)
 {
-       struct osd_it_quota *it = (struct osd_it_quota *)di;
+       struct osd_it_quota     *it     = (struct osd_it_quota *)di;
        ENTRY;
+
        osd_zap_cursor_fini(it->oiq_zc);
        lu_object_put(env, &it->oiq_obj->oo_dt.do_lu);
+       OBD_FREE_PTR(it);
+
        EXIT;
 }