lkml.org 
[lkml]   [2020]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 124/135] ocfs2: fix value of OCFS2_INVALID_SLOT
    Date
    From: Junxiao Bi <junxiao.bi@oracle.com>

    commit 9277f8334ffc719fe922d776444d6e4e884dbf30 upstream.

    In the ocfs2 disk layout, slot number is 16 bits, but in ocfs2
    implementation, slot number is 32 bits. Usually this will not cause any
    issue, because slot number is converted from u16 to u32, but
    OCFS2_INVALID_SLOT was defined as -1, when an invalid slot number from
    disk was obtained, its value was (u16)-1, and it was converted to u32.
    Then the following checking in get_local_system_inode will be always
    skipped:

    static struct inode **get_local_system_inode(struct ocfs2_super *osb,
    int type,
    u32 slot)
    {
    BUG_ON(slot == OCFS2_INVALID_SLOT);
    ...
    }

    Link: http://lkml.kernel.org/r/20200616183829.87211-5-junxiao.bi@oracle.com
    Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Changwei Ge <gechangwei@live.cn>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    fs/ocfs2/ocfs2_fs.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h
    index 88c1bd3898faf..5617ec167a9d7 100644
    --- a/fs/ocfs2/ocfs2_fs.h
    +++ b/fs/ocfs2/ocfs2_fs.h
    @@ -304,7 +304,7 @@
    #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
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-29 23:17    [W:4.073 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site