Whamcloud - gitweb
LU-14286 osd-ldiskfs: fallocate() should zero new blocks
[fs/lustre-release.git] / lustre / ptlrpc / nodemap_storage.c
index 0a7602e..0cbafb7 100644 (file)
@@ -75,6 +75,7 @@ enum nm_flag_shifts {
        NM_FL_MAP_UID_ONLY = 0x8,
        NM_FL_MAP_GID_ONLY = 0x10,
        NM_FL_ENABLE_AUDIT = 0x20,
+       NM_FL_FORBID_ENCRYPT = 0x40,
 };
 
 static void nodemap_cluster_key_init(struct nodemap_key *nk, unsigned int nm_id)
@@ -104,7 +105,9 @@ static void nodemap_cluster_rec_init(union nodemap_rec *nr,
                (nodemap->nmf_map_gid_only ?
                        NM_FL_MAP_GID_ONLY : 0) |
                (nodemap->nmf_enable_audit ?
-                       NM_FL_ENABLE_AUDIT : 0));
+                       NM_FL_ENABLE_AUDIT : 0) |
+               (nodemap->nmf_forbid_encryption ?
+                       NM_FL_FORBID_ENCRYPT : 0));
 }
 
 static void nodemap_idmap_key_init(struct nodemap_key *nk, unsigned int nm_id,
@@ -757,6 +760,8 @@ static int nodemap_process_keyrec(struct nodemap_config *config,
                                        flags & NM_FL_MAP_GID_ONLY;
                nodemap->nmf_enable_audit =
                                        flags & NM_FL_ENABLE_AUDIT;
+               nodemap->nmf_forbid_encryption =
+                                       flags & NM_FL_FORBID_ENCRYPT;
 
                /* The fileset should be saved otherwise it will be empty
                 * every time in case of "NODEMAP_CLUSTER_IDX". */
@@ -1488,7 +1493,7 @@ int nodemap_get_config_req(struct obd_device *mgs_obd,
               body->mcb_name, rdpg.rp_count);
 
        /* allocate pages to store the containers */
-       OBD_ALLOC(rdpg.rp_pages, sizeof(*rdpg.rp_pages) * rdpg.rp_npages);
+       OBD_ALLOC_PTR_ARRAY(rdpg.rp_pages, rdpg.rp_npages);
        if (rdpg.rp_pages == NULL)
                RETURN(-ENOMEM);
        for (i = 0; i < rdpg.rp_npages; i++) {
@@ -1520,8 +1525,7 @@ int nodemap_get_config_req(struct obd_device *mgs_obd,
        page_count = (bytes + PAGE_SIZE - 1) >> PAGE_SHIFT;
        LASSERT(page_count <= rdpg.rp_count);
        desc = ptlrpc_prep_bulk_exp(req, page_count, 1,
-                                   PTLRPC_BULK_PUT_SOURCE |
-                                       PTLRPC_BULK_BUF_KIOV,
+                                   PTLRPC_BULK_PUT_SOURCE,
                                    MGS_BULK_PORTAL, frag_ops);
        if (desc == NULL)
                GOTO(out, rc = -ENOMEM);
@@ -1540,8 +1544,7 @@ out:
                for (i = 0; i < rdpg.rp_npages; i++)
                        if (rdpg.rp_pages[i] != NULL)
                                __free_page(rdpg.rp_pages[i]);
-               OBD_FREE(rdpg.rp_pages,
-                        rdpg.rp_npages * sizeof(rdpg.rp_pages[0]));
+               OBD_FREE_PTR_ARRAY(rdpg.rp_pages, rdpg.rp_npages);
        }
        return rc;
 }