From b0301f75c4982ef5317e008525bbf22bc7a5c333 Mon Sep 17 00:00:00 2001 From: David Rientjes Date: Wed, 26 Aug 2009 14:29:20 -0700 Subject: [PATCH] --- yaml --- r: 157103 b: refs/heads/master c: a30b595d2ca6d39e784a1bed5f2b35f3d7a03af7 h: refs/heads/master i: 157101: 4bd1c13c1d9aaf1ae0246da03eed5df76b31353a 157099: ad7c0314378707142cb4a81a08d26c8eea7ce9e0 157095: b2256328919051bfc971c7557e3881d34819d03c 157087: 6c12a6778cd061a3c3143a9daae8c204f2a0b8be v: v3 --- [refs] | 2 +- trunk/lib/flex_array.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 7501822f2ae4..572870c7cf13 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 054b2b13ccba4876a1ce98a7ede7dab7d6893d01 +refs/heads/master: a30b595d2ca6d39e784a1bed5f2b35f3d7a03af7 diff --git a/trunk/lib/flex_array.c b/trunk/lib/flex_array.c index 08f1636d296a..e73c691aec36 100644 --- a/trunk/lib/flex_array.c +++ b/trunk/lib/flex_array.c @@ -198,10 +198,11 @@ int flex_array_put(struct flex_array *fa, int element_nr, void *src, gfp_t flags return -ENOSPC; if (elements_fit_in_base(fa)) part = (struct flex_array_part *)&fa->parts[0]; - else + else { part = __fa_get_part(fa, part_nr, flags); - if (!part) - return -ENOMEM; + if (!part) + return -ENOMEM; + } dst = &part->elements[index_inside_part(fa, element_nr)]; memcpy(dst, src, fa->element_size); return 0; @@ -257,11 +258,12 @@ void *flex_array_get(struct flex_array *fa, int element_nr) if (element_nr >= fa->total_nr_elements) return NULL; - if (!fa->parts[part_nr]) - return NULL; if (elements_fit_in_base(fa)) part = (struct flex_array_part *)&fa->parts[0]; - else + else { part = fa->parts[part_nr]; + if (!part) + return NULL; + } return &part->elements[index_inside_part(fa, element_nr)]; }