LogFS: confused with using s64 and u64

From: Alexander Beregalov
Date: Fri Aug 08 2008 - 17:12:54 EST


Hi Joern

I am a bit confused with mixing signed and unsigned types here:


static inline u64 dev_ofs(struct super_block *sb, u32 segno, u32 ofs)
{
return ((u64)segno << logfs_super(sb)->s_segshift) + ofs;
}

static s64 logfs_get_free_bytes(struct logfs_area *area, size_t bytes)
{
s32 ofs;
...
ofs = area->a_used_bytes;
...
return dev_ofs(area->a_sb, area->a_segno, ofs);
}

Can you please explain why do you use s64 for function which returns u64?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/