RE: [lustre-devel] [PATCH] Revert "Staging: lustre: o2iblnd: Use sizeof type *pointer instead of sizeof type."

Simmons, James A.
2016-03-23T18:31:59Z

>On Wed, Mar 23, 2016 at 05:39:36AM +0000, Dilger, Andreas wrote:
>> On 2016/03/22, 19:49, "lustre-devel on behalf of Greg Kroah-Hartman"
>> <lustre-devel-bounces@lists.lustre.org on behalf of
>> gregkh@linuxfoundation.org> wrote:
>>
>> >On Tue, Mar 22, 2016 at 06:21:04PM -0400, James Simmons wrote:
>> >> Latest testing fails when using ko2iblnd. It was tracked down
>> >> to commit 4671a026616df26000f7d8ad2f2ea4b6de79263c.
>> >>
>> >> This reverts commit 4671a026616df26000f7d8ad2f2ea4b6de79263c.
>> >> ---
>> >> .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 4 ++--
>> >> 1 files changed, 2 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
>> >>b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
>> >> index 89f9390..0d32e65 100644
>> >> --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
>> >> +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
>> >> @@ -1968,7 +1968,7 @@ static int kiblnd_net_init_pools(kib_net_t *net,
>> >>__u32 *cpts, int ncpts)
>> >> */
>> >>
>> >> net->ibn_fmr_ps = cfs_percpt_alloc(lnet_cpt_table(),
>> >> - sizeof(*net->ibn_fmr_ps));
>> >> + sizeof(kib_fmr_poolset_t));
>> >
>> >Ok, why is this revert needed? Please give me a big huge comment about
>> >why this is not the same size of the variable being assigned to it,
>> >otherwise someone else is going to come along and make the exact same
>> >change again.
>> >
>> >> if (!net->ibn_fmr_ps) {
>> >> CERROR("Failed to allocate FMR pool array\n");
>> >> rc = -ENOMEM;
>> >> @@ -1992,7 +1992,7 @@ static int kiblnd_net_init_pools(kib_net_t *net,
>> >>__u32 *cpts, int ncpts)
>> >>
>> >> create_tx_pool:
>> >> net->ibn_tx_ps = cfs_percpt_alloc(lnet_cpt_table(),
>> >> - sizeof(*net->ibn_tx_ps));
>> >> + sizeof(kib_tx_poolset_t));
>> >
>> >Same here, why is this code wrong?
>>
>> Looks like the declarations are:
>>
>> kib_tx_poolset_t **ibn_tx_ps; /* tx pool-set */
>> kib_fmr_poolset_t **ibn_fmr_ps; /* fmr pool-set */
>>
>>
>>
>> so the right code should be:
>>
>> sizeof(**net->ibn_tx_ps);
>>
>>
>> and the same for sizeof(**net->ibn_fmr_ps)
>
>That's a mess, isn't there some other way to fix this up to be more
>"obvious"?

This must have been encountered in the past. How was it handle in those
other cases?