[openib-general] [PATCH 3/6] [RFC] iser initiator

Or Gerlitz ogerlitz at voltaire.com
Mon Feb 27 05:21:20 PST 2006


Christoph Hellwig wrote:

>> +static int iser_post_receive_control(struct iscsi_iser_conn *p_iser_conn)
...
>> +	rx_desc = kmem_cache_alloc(ig.desc_cache,
>> +				      GFP_KERNEL | __GFP_NOFAIL);

> __GFP_NOFAIL doesn't work for slab (kmem_cache_alloc/kmalloc/kzalloc/kcalloc)
> allocations

DONE, in r5505

>> +send_data_out_error:
>> +	if (p_send_dto != NULL)
>> +		iser_dto_buffs_release(p_send_dto);
>> +	if (tx_desc != NULL)
>> +		kmem_cache_free(ig.desc_cache, tx_desc);
> 
> could you please do the same goto-unwinding style we use elsewhere
> in the kernel?  That is one label before each unwind step and jump
> directly to that instead of adding tons of conditionals in the error path.

DONE, in r5507

  ------------------------------------------------------------------------
r5507 | ogerlitz | 2006-02-27 15:27:37 +0200 (Mon, 27 Feb 2006) | 4 lines

goto-unwinding style - use few goto labels without if()s between them

Signed-off-by: Or Gerlitz <ogerlitz at voltaire.com>

------------------------------------------------------------------------
r5505 | ogerlitz | 2006-02-27 14:48:53 +0200 (Mon, 27 Feb 2006) | 6 lines

don't use __GFP_NOFAIL flag for memory allocations,also one page_vec
is pre-allocated per struct iser_conn and used for all fmr maps done
on behalf of this connection, this is possible since tx is serialized.

Signed-off-by: Or Gerlitz <ogerlitz at voltaire.com>

------------------------------------------------------------------------






More information about the general mailing list