(2010/12/08 19:01), liubo wrote: > While compiling btrfs, I got belows: > > CC [M] fs/btrfs/inode.o > fs/btrfs/inode.c: In function ‘btrfs_end_dio_bio’: > fs/btrfs/inode.c:5720: warning: format ‘%lu’ expects type ‘long unsigned > int’, but argument 4 has type ‘sector_t’ > LD [M] fs/btrfs/btrfs.o > Building modules, stage 2. > MODPOST 1 modules > LD [M] fs/btrfs/btrfs.ko > > This fixes the compile warning. > > Signed-off-by: Liu Bo <liubo2...@cn.fujitsu.com> > --- > fs/btrfs/inode.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c > index 0f34cae..eff5aef 100644 > --- a/fs/btrfs/inode.c > +++ b/fs/btrfs/inode.c > @@ -5713,8 +5713,8 @@ static void btrfs_end_dio_bio(struct bio *bio, int err) > if (err) { > printk(KERN_ERR "btrfs direct IO failed ino %lu rw %lu " > "disk_bytenr %lu len %u err no %d\n", > - dip->inode->i_ino, bio->bi_rw, bio->bi_sector, > - bio->bi_size, err); > + dip->inode->i_ino, bio->bi_rw, > + (unsigned long)bio->bi_sector, bio->bi_size, err);
sector_t is defined by include/linux/types.h as follows. #ifdef CONFIG_LBDAF typedef u64 sector_t; typedef u64 blkcnt_t; #else typedef unsigned long sector_t; typedef unsigned long blkcnt_t; #endif Therefore, I think that you should change the code as follows. printk(KERN_ERR "btrfs direct IO failed ino %lu rw %lu " "disk_bytenr %llu len %u err no %d\n", dip->inode->i_ino, bio->bi_rw, (u64)bio->bi_sector, bio->bi_size, err); > dip->errors = 1; > > /* Regards, Itoh -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html