]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ocfs2: change slot number type s16 to u16
authorJunxiao Bi <junxiao.bi@oracle.com>
Fri, 7 Aug 2020 06:18:02 +0000 (23:18 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 08:53:06 +0000 (10:53 +0200)
commit 38d51b2dd171ad973afc1f5faab825ed05a2d5e9 upstream.

Dan Carpenter reported the following static checker warning.

fs/ocfs2/super.c:1269 ocfs2_parse_options() warn: '(-1)' 65535 can't fit into 32767 'mopt->slot'
fs/ocfs2/suballoc.c:859 ocfs2_init_inode_steal_slot() warn: '(-1)' 65535 can't fit into 32767 'osb->s_inode_steal_slot'
fs/ocfs2/suballoc.c:867 ocfs2_init_meta_steal_slot() warn: '(-1)' 65535 can't fit into 32767 'osb->s_meta_steal_slot'

That's because OCFS2_INVALID_SLOT is (u16)-1. Slot number in ocfs2 can be
never negative, so change s16 to u16.

Fixes: 9277f8334ffc ("ocfs2: fix value of OCFS2_INVALID_SLOT")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Reviewed-by: Gang He <ghe@suse.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Jun Piao <piaojun@huawei.com>
Cc: <stable@vger.kernel.org>
Link: http://lkml.kernel.org/r/20200627001259.19757-1-junxiao.bi@oracle.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ocfs2/ocfs2.h
fs/ocfs2/suballoc.c
fs/ocfs2/super.c

index 2495066a9ca3f597310a4e2d716b9d973749dbb1..9e7f39b17e679bf3926eed6e9ee613d86e8911ee 100644 (file)
@@ -337,8 +337,8 @@ struct ocfs2_super
        spinlock_t osb_lock;
        u32 s_next_generation;
        unsigned long osb_flags;
-       s16 s_inode_steal_slot;
-       s16 s_meta_steal_slot;
+       u16 s_inode_steal_slot;
+       u16 s_meta_steal_slot;
        atomic_t s_num_inodes_stolen;
        atomic_t s_num_meta_stolen;
 
index 28cc343bf6e3b08bf607f30fe87f841436525126..41a67c9b37e0261f104bec3676b9325a4362a08e 100644 (file)
@@ -895,9 +895,9 @@ static void __ocfs2_set_steal_slot(struct ocfs2_super *osb, int slot, int type)
 {
        spin_lock(&osb->osb_lock);
        if (type == INODE_ALLOC_SYSTEM_INODE)
-               osb->s_inode_steal_slot = slot;
+               osb->s_inode_steal_slot = (u16)slot;
        else if (type == EXTENT_ALLOC_SYSTEM_INODE)
-               osb->s_meta_steal_slot = slot;
+               osb->s_meta_steal_slot = (u16)slot;
        spin_unlock(&osb->osb_lock);
 }
 
index 4f5141350af865f75c0d6adbd3999b868ee249e6..d97403bb362267fcbcbcc80e3e9e64d51072875b 100644 (file)
@@ -96,7 +96,7 @@ struct mount_options
        unsigned long   commit_interval;
        unsigned long   mount_opt;
        unsigned int    atime_quantum;
-       signed short    slot;
+       unsigned short  slot;
        int             localalloc_opt;
        unsigned int    resv_level;
        int             dir_resv_level;
@@ -1372,7 +1372,7 @@ static int ocfs2_parse_options(struct super_block *sb,
                                goto bail;
                        }
                        if (option)
-                               mopt->slot = (s16)option;
+                               mopt->slot = (u16)option;
                        break;
                case Opt_commit:
                        option = 0;