[Ocfs2-devel] [PATCH] ocfs2: Fix 2 warning during ocfs2 make.
Tao Ma
tao.ma at oracle.com
Wed Mar 18 23:42:48 PDT 2009
Hi wengang,
Wengang Wang wrote:
> Hi Tao,
>
> I think for the OCFS2_INVALID_SLOT problem,
> define OCFS2_INVALID_SLOT as (u16)-1 is better. so that we needn't
> force convert type wherever it's used.
I just copy/paste and do like others. See
fs/ocfs2/slot_map.c: if (le16_to_cpu(sm->sm_slots[i]) ==
(u16)OCFS2_INVALID_SLOT)
And after I searched again, I guess we can't do that. look at
fs/ocfs2/super.c.
osb->slot_num = OCFS2_INVALID_SLOT;
slot_num is defined as int. So your definition will break the rule. and
make slot_num=65535.
Regards,
Tao
>
>
> --- fs/ocfs2/ocfs2_fs.h 2009-02-18 19:58:02.000000000 +0800
> +++ fs/ocfs2/ocfs2_fs.h.1 2009-03-19 14:24:18.000000000 +0800
> @@ -303,7 +303,7 @@ struct ocfs2_new_group_input {
> #define OCFS2_MAX_SLOTS 255
>
> /* Slot map indicator for an empty slot */
> -#define OCFS2_INVALID_SLOT -1
> +#define OCFS2_INVALID_SLOT (u16)-1
>
> #define OCFS2_VOL_UUID_LEN 16
> #define OCFS2_MAX_VOL_LABEL_LEN 64
>
> I didn't paste the part for removing force type converting.
>
> thanks,
> wengang.
>
> Tao Ma wrote:
>> fs/ocfs2/dir.c: In function ‘ocfs2_extend_dir’:
>> fs/ocfs2/dir.c:2700: warning: ‘ret’ may be used uninitialized in this
>> function
>>
>> fs/ocfs2/suballoc.c: In function ‘ocfs2_get_suballoc_slot_bit’:
>> fs/ocfs2/suballoc.c:2216: warning: comparison is always true due to
>> limited range of data type
>>
>> Signed-off-by: Tao Ma <tao.ma at oracle.com>
>> ---
>> fs/ocfs2/dir.c | 2 +-
>> fs/ocfs2/suballoc.c | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
>> index e71160c..eeac241 100644
>> --- a/fs/ocfs2/dir.c
>> +++ b/fs/ocfs2/dir.c
>> @@ -2697,7 +2697,7 @@ static int ocfs2_dx_dir_index_block(struct inode
>> *dir,
>> u32 *num_dx_entries,
>> struct buffer_head *dirent_bh)
>> {
>> - int ret, namelen, i;
>> + int ret = 0, namelen, i;
>> char *de_buf, *limit;
>> struct ocfs2_dir_entry *de;
>> struct buffer_head *dx_leaf_bh;
>> diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
>> index b4ca591..eb21dbb 100644
>> --- a/fs/ocfs2/suballoc.c
>> +++ b/fs/ocfs2/suballoc.c
>> @@ -2213,7 +2213,7 @@ static int ocfs2_get_suballoc_slot_bit(struct
>> ocfs2_super *osb, u64 blkno,
>> goto bail;
>> }
>>
>> - if (le16_to_cpu(inode_fe->i_suballoc_slot) != OCFS2_INVALID_SLOT &&
>> + if (le16_to_cpu(inode_fe->i_suballoc_slot) !=
>> (u16)OCFS2_INVALID_SLOT &&
>> (u32)le16_to_cpu(inode_fe->i_suballoc_slot) > osb->max_slots
>> - 1) {
>> mlog(ML_ERROR, "inode %llu has invalid suballoc slot %u\n",
>> blkno, (u32)le16_to_cpu(inode_fe->i_suballoc_slot));
More information about the Ocfs2-devel
mailing list