[pnfs] [PATCH 1/5] pnfs: Several non-critical fixups.

Benny Halevy bhalevy at panasas.com
Wed May 7 21:08:05 EDT 2008


On May. 07, 2008, 15:13 -0700, Dean Hildebrand <seattleplus at gmail.com> wrote:
> 
> Benny Halevy wrote:
>> On May. 06, 2008, 16:45 -0700, Dean Hildebrand <seattleplus at gmail.com> wrote:
>> <snip>
>>
>>   
>>> @@ -499,10 +499,11 @@ decode_and_add_ds(uint32_t **pp, struct filelayout_mount_type *mt)
>>>  	 */
>>>  	if (!ds->ds_clp) {
>>>  		err = nfs4_pnfs_ds_create(mds_srv, ds);
>>> -		printk(KERN_ERR
>>> -		       "%s nfs4_pnfs_ds_create returned %d\n", __func__, err);
>>> -		if (err)
>>> +		if (err) {
>>> +			printk(KERN_ERR "%s nfs4_pnfs_ds_create error %d\n",
>>> +			       __func__, err);
>>>  			goto out_err;
>>> +		}
>>>  	}
>>>     
>> Why is this non-critical?
>> This looks like a real bug fix to me.... 
>>   
>>   
>>> @@ -1184,7 +1184,7 @@ pnfs_update_layout_commit(struct inode *inode,
>>>  	struct nfs_page *nfs_page = nfs_list_entry(head->next);
>>>  	int status;
>>>  
>>> -	dprintk("--> %s inode %p layout range: %Zd@%Lu\n", __func__, inode,
>>> +	dprintk("--> %s inode %p layout range: %Zd@%Zu\n", __func__, inode,
>>>  				(size_t)(npages * PAGE_SIZE),
>>>  				(loff_t)idx_start * PAGE_SIZE);
>>>  
>>>     
>>
>> Why is that?
>> Do you get a warning in your environment?
>> How about this instead?
>>
>>  	dprintk("--> %s inode %p layout range: %Zd@%Lu\n", __func__, inode,
>>  				(size_t)(npages * PAGE_SIZE),
>> -				(loff_t)idx_start * PAGE_SIZE);
>> +				(u64)idx_start * PAGE_SIZE);
>>   
> I don't get any warnings on 64 bit, but good catch.  There is a problem, 
> but I think the main culprit is the parenthesis.  pgoff_t is unsigned 
> long, so casting it to loff_t is actually wrong, and so is u64 it 

You want to do that to prevent overflow when multiplying with PAGE_SIZE
on 32-bit machines...

Benny

> seems.  So I think the real format is %lu.  There is also a indentation 
> error.
>    Let me send a new patch.
> Dean



More information about the pNFS mailing list