[Ocfs2-devel] [PATCH] ocfs2: Fix 2 warning during ocfs2 make.
Wengang Wang
wen.gang.wang at oracle.com
Wed Mar 18 23:47:44 PDT 2009
yes, that's the problem.
we'd better unify the different types(but could be another patch).
since the on disk is u16, modifying other types to u16 is fine :)
thanks,
wengang.
Tao Ma wrote:
> 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