Whamcloud - gitweb
LU-8551 test: Use mds1 rather than mds to operate on MDT0000
[fs/lustre-release.git] / lustre / target / tgt_main.c
index 391f295..e32e558 100644 (file)
@@ -153,7 +153,7 @@ int tgt_init(const struct lu_env *env, struct lu_target *lut,
        struct lu_attr           attr;
        struct lu_fid            fid;
        struct dt_object        *o;
-       int                      rc = 0;
+       int i, rc = 0;
 
        ENTRY;
 
@@ -231,7 +231,7 @@ int tgt_init(const struct lu_env *env, struct lu_target *lut,
        OBD_ALLOC(lut->lut_reply_bitmap,
                  LUT_REPLY_SLOTS_MAX_CHUNKS * sizeof(unsigned long *));
        if (lut->lut_reply_bitmap == NULL)
-               GOTO(out, rc);
+               GOTO(out, rc = -ENOMEM);
 
        memset(&attr, 0, sizeof(attr));
        attr.la_valid = LA_MODE;
@@ -272,9 +272,17 @@ out_put:
        if (lut->lut_reply_data != NULL)
                lu_object_put(env, &lut->lut_reply_data->do_lu);
        lut->lut_reply_data = NULL;
-       if (lut->lut_reply_bitmap != NULL)
+       if (lut->lut_reply_bitmap != NULL) {
+               for (i = 0; i < LUT_REPLY_SLOTS_MAX_CHUNKS; i++) {
+                       if (lut->lut_reply_bitmap[i] != NULL)
+                               OBD_FREE_LARGE(lut->lut_reply_bitmap[i],
+                                   BITS_TO_LONGS(LUT_REPLY_SLOTS_PER_CHUNK) *
+                                   sizeof(long));
+                       lut->lut_reply_bitmap[i] = NULL;
+               }
                OBD_FREE(lut->lut_reply_bitmap,
                         LUT_REPLY_SLOTS_MAX_CHUNKS * sizeof(unsigned long *));
+       }
        lut->lut_reply_bitmap = NULL;
        return rc;
 }
@@ -306,7 +314,7 @@ void tgt_fini(const struct lu_env *env, struct lu_target *lut)
        if (lut->lut_reply_bitmap != NULL) {
                for (i = 0; i < LUT_REPLY_SLOTS_MAX_CHUNKS; i++) {
                        if (lut->lut_reply_bitmap[i] != NULL)
-                               OBD_FREE(lut->lut_reply_bitmap[i],
+                               OBD_FREE_LARGE(lut->lut_reply_bitmap[i],
                                    BITS_TO_LONGS(LUT_REPLY_SLOTS_PER_CHUNK) *
                                    sizeof(long));
                        lut->lut_reply_bitmap[i] = NULL;
@@ -394,7 +402,7 @@ int tgt_mod_init(void)
 {
        ENTRY;
 
-       tgt_page_to_corrupt = alloc_page(GFP_IOFS);
+       tgt_page_to_corrupt = alloc_page(GFP_KERNEL);
 
        tgt_key_init_generic(&tgt_thread_key, NULL);
        lu_context_key_register_many(&tgt_thread_key, NULL);
@@ -413,7 +421,7 @@ int tgt_mod_init(void)
 void tgt_mod_exit(void)
 {
        if (tgt_page_to_corrupt != NULL)
-               page_cache_release(tgt_page_to_corrupt);
+               put_page(tgt_page_to_corrupt);
 
        lu_context_key_degister(&tgt_thread_key);
        lu_context_key_degister(&tgt_session_key);