2006-05-25 12:46:15

by Takashi Sato

[permalink] [raw]
Subject: [UPDATE][8/24]efs modify format strings

Summary of this patch:
[8/24] modify format strings in print(efs)
- As i_blocks of VFS inode gets 8 byte variable, change its
string format to %lld.

Signed-off-by: Takashi Sato [email protected]
---
diff -upNr -X linux-2.6.17-rc4/Documentation/dontdiff linux-2.6.17-rc4/fs/efs/file.c linux-2.6.17-rc4.tmp/fs/efs/file.c
--- linux-2.6.17-rc4/fs/efs/file.c 2006-03-20 14:53:29.000000000 +0900
+++ linux-2.6.17-rc4.tmp/fs/efs/file.c 2006-05-25 16:32:28.543691208 +0900
@@ -22,7 +22,7 @@ int efs_get_block(struct inode *inode, s
/*
* i have no idea why this happens as often as it does
*/
- printk(KERN_WARNING "EFS: bmap(): block %d >= %ld (filesize %ld)\n",
+ printk(KERN_WARNING "EFS: bmap(): block %d >= %lld (filesize %ld)\n",
block,
inode->i_blocks,
inode->i_size);
@@ -48,7 +48,7 @@ int efs_bmap(struct inode *inode, efs_bl
/*
* i have no idea why this happens as often as it does
*/
- printk(KERN_WARNING "EFS: bmap(): block %d >= %ld (filesize %ld)\n",
+ printk(KERN_WARNING "EFS: bmap(): block %d >= %lld (filesize %ld)\n",
block,
inode->i_blocks,
inode->i_size);




2006-05-25 13:12:55

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [UPDATE][7/24]several messages

>Summary of this patch:
> [7/24] modify format strings in print(bfs)
> - As i_blocks of VFS inode gets 8 byte variable, change its
> string format to %lld.
>
>- if (inode->i_size || inode->i_blocks) dprintf("Registered inode with %lld size, %ld blocks\n", inode->i_size, inode->i_blocks);
>+ if (inode->i_size || inode->i_blocks) dprintf("Registered inode with %lld size, %lld blocks\n", inode->i_size, inode->i_blocks);

Does gcc automatically promote/demote the arguments according to the %
specifier? Otherwise, you should add an explicit cast to (long) or
(long long) with varargs functions, since you cannot be sure that
->i_blocks (blkcnt_t) is the same as long/long long.

>Summary of this patch:
> [8/24] modify format strings in print(efs)
> - As i_blocks of VFS inode gets 8 byte variable, change its
> string format to %lld.
>
>@@ -22,7 +22,7 @@ int efs_get_block(struct inode *inode, s
> /*
> * i have no idea why this happens as often as it does
> */
>- printk(KERN_WARNING "EFS: bmap(): block %d >= %ld (filesize %ld)\n",
>+ printk(KERN_WARNING "EFS: bmap(): block %d >= %lld (filesize %ld)\n",



Jan Engelhardt
--