[Pvfs2-developers] Patch for 2.4 kernels

Sam Lang slang at mcs.anl.gov
Mon Mar 5 12:02:39 EST 2007


Hi Murali,

The initial patches I sent to check for kzalloc were broken.  I think  
Ti may have been using these.  I sent a better patch on February 21st  
to the users list:

http://www.beowulf-underground.org/pipermail/pvfs2-users/2007- 
February/001836.html

-sam

On Mar 5, 2007, at 10:48 AM, Murali Vilayannur wrote:

> Hi Ti,
> Hmm.. Why is this required?
> I was under the assumption that we have a inline function called  
> kzalloc() when
> configure fails to detect if kzalloc() was not present..
> Perhaps the configure checks failed for some reason?
>
> In any case this patch is not sufficient. We need to call a memset 
> (ptr, 0, size)
> after the kmalloc() succeeds in place of the kzalloc.
> thanks,
> Murali
>
> On 3/5/07, Ti Leggett <leggett at mcs.anl.gov> wrote:
>> This patch removes references to kzalloc. It's necessary for 2.4
>> kernels (or at least SLES8 2.4 kernels).
>>
>> --- src/kernel/linux-2.6/file.c.orig    2007-03-05 09:15:43.000000000
>> -0600
>> +++ src/kernel/linux-2.6/file.c 2007-03-05 09:25:38.000000000 -0600
>> @@ -357,7 +357,7 @@
>>                   (unsigned long)(nr_segs * sizeof(*orig_iovec)));
>>           return -ENOMEM;
>>       }
>> -    new_iovec = kzalloc(max_new_nr_segs * sizeof(*new_iovec),
>> +    new_iovec = (struct iovec *) kmalloc(max_new_nr_segs * sizeof
>> (struct iovec)
>>               PVFS2_BUFMAP_GFP_FLAGS);
>>       if (new_iovec == NULL)
>>       {
>> @@ -366,7 +366,7 @@
>>                   (unsigned long)(max_new_nr_segs * sizeof
>> (*new_iovec)));
>>           return -ENOMEM;
>>       }
>> -    sizes = kzalloc(max_new_nr_segs * sizeof(*sizes),
>> PVFS2_BUFMAP_GFP_FLAGS);
>> +    sizes = (long *) kmalloc(max_new_nr_segs * sizeof(long),
>> PVFS2_BUFMAP_GFP_F
>>       if (sizes == NULL)
>>       {
>>           kfree(new_iovec);
>> @@ -914,7 +914,7 @@
>>                   (unsigned long)(nr_segs * sizeof(*orig_xtvec)));
>>           return -ENOMEM;
>>       }
>> -    new_xtvec = kzalloc(max_new_nr_segs * sizeof(*new_xtvec),
>> +    new_xtvec = (struct xtvec *) kmalloc(max_new_nr_segs * sizeof
>> (struct xtvec)
>>               PVFS2_BUFMAP_GFP_FLAGS);
>>       if (new_xtvec == NULL)
>>       {
>> @@ -923,7 +923,7 @@
>>                   (unsigned long)(max_new_nr_segs * sizeof
>> (*new_xtvec)));
>>           return -ENOMEM;
>>       }
>> -    sizes = kzalloc(max_new_nr_segs * sizeof(*sizes),
>> PVFS2_BUFMAP_GFP_FLAGS);
>> +    sizes = (long *) kmalloc(max_new_nr_segs * sizeof(long),
>> PVFS2_BUFMAP_GFP_F
>>       if (sizes == NULL)
>>       {
>>           kfree(new_xtvec);
>> --- src/kernel/linux-2.6/pvfs2-bufmap.c.orig    2007-03-05
>> 09:19:40.000000000 -0
>> +++ src/kernel/linux-2.6/pvfs2-bufmap.c 2007-03-05 09:32:27.000000000
>> -0600
>> @@ -50,7 +50,7 @@
>>           goto out;
>>       }
>>       err = -ENOMEM;
>> -    buffer_index_array = kzalloc(ndescs * sizeof 
>> (*buffer_index_array),
>> +    buffer_index_array = kmalloc(ndescs * sizeof 
>> (*buffer_index_array),
>>                                    PVFS2_BUFMAP_GFP_FLAGS);
>>       if (buffer_index_array == NULL)
>>       {
>>
>> _______________________________________________
>> Pvfs2-developers mailing list
>> Pvfs2-developers at beowulf-underground.org
>> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>>
> _______________________________________________
> Pvfs2-developers mailing list
> Pvfs2-developers at beowulf-underground.org
> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>



More information about the Pvfs2-developers mailing list