Illumos 5038 - Remove "old-style" flexible array usage in ZFS.

5038 Remove "old-style" flexible array usage in ZFS.
Author: Justin T. Gibbs <justing@spectralogic.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Approved by: Richard Lowe <richlowe@richlowe.net>

References:
  https://www.illumos.org/issues/5038
  https://github.com/illumos/illumos-gate/commit/7f18da4

Ported-by: Chris Dunlop <chris@onthe.net.au>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Justin T. Gibbs 2015-04-02 02:09:20 +11:00 committed by Brian Behlendorf
parent 8951cb8dfb
commit 5aea3644d6
2 changed files with 4 additions and 4 deletions

View File

@ -267,7 +267,7 @@ typedef struct dnode_handle {
typedef struct dnode_children { typedef struct dnode_children {
size_t dnc_count; /* number of children */ size_t dnc_count; /* number of children */
dnode_handle_t dnc_children[1]; /* sized dynamically */ dnode_handle_t dnc_children[]; /* sized dynamically */
} dnode_children_t; } dnode_children_t;
typedef struct free_range { typedef struct free_range {

View File

@ -1022,7 +1022,7 @@ dnode_buf_pageout(dmu_buf_t *db, void *arg)
dnh->dnh_dnode = NULL; dnh->dnh_dnode = NULL;
} }
kmem_free(children_dnodes, sizeof (dnode_children_t) + kmem_free(children_dnodes, sizeof (dnode_children_t) +
(epb - 1) * sizeof (dnode_handle_t)); epb * sizeof (dnode_handle_t));
} }
/* /*
@ -1107,7 +1107,7 @@ dnode_hold_impl(objset_t *os, uint64_t object, int flag,
int i; int i;
dnode_children_t *winner; dnode_children_t *winner;
children_dnodes = kmem_alloc(sizeof (dnode_children_t) + children_dnodes = kmem_alloc(sizeof (dnode_children_t) +
(epb - 1) * sizeof (dnode_handle_t), KM_SLEEP); epb * sizeof (dnode_handle_t), KM_SLEEP);
children_dnodes->dnc_count = epb; children_dnodes->dnc_count = epb;
dnh = &children_dnodes->dnc_children[0]; dnh = &children_dnodes->dnc_children[0];
for (i = 0; i < epb; i++) { for (i = 0; i < epb; i++) {
@ -1122,7 +1122,7 @@ dnode_hold_impl(objset_t *os, uint64_t object, int flag,
} }
kmem_free(children_dnodes, sizeof (dnode_children_t) + kmem_free(children_dnodes, sizeof (dnode_children_t) +
(epb - 1) * sizeof (dnode_handle_t)); epb * sizeof (dnode_handle_t));
children_dnodes = winner; children_dnodes = winner;
} }
} }