lkml.org 
[lkml]   [2020]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 021/255] xfs: set xefi_discard when creating a deferred agfl free log intent item
    Date
    From: Darrick J. Wong <darrick.wong@oracle.com>

    [ Upstream commit 2c334e12f957cd8c6bb66b4aa3f79848b7c33cab ]

    Make sure that we actually initialize xefi_discard when we're scheduling
    a deferred free of an AGFL block. This was (eventually) found by the
    UBSAN while I was banging on realtime rmap problems, but it exists in
    the upstream codebase. While we're at it, rearrange the structure to
    reduce the struct size from 64 to 56 bytes.

    Fixes: fcb762f5de2e ("xfs: add bmapi nodiscard flag")
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/xfs/libxfs/xfs_alloc.c | 1 +
    fs/xfs/libxfs/xfs_bmap.h | 2 +-
    2 files changed, 2 insertions(+), 1 deletion(-)

    diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
    index 852b536551b53..15640015be9d2 100644
    --- a/fs/xfs/libxfs/xfs_alloc.c
    +++ b/fs/xfs/libxfs/xfs_alloc.c
    @@ -2467,6 +2467,7 @@ xfs_defer_agfl_block(
    new->xefi_startblock = XFS_AGB_TO_FSB(mp, agno, agbno);
    new->xefi_blockcount = 1;
    new->xefi_oinfo = *oinfo;
    + new->xefi_skip_discard = false;

    trace_xfs_agfl_free_defer(mp, agno, 0, agbno, 1);

    diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h
    index e1bd484e55485..6747e97a79490 100644
    --- a/fs/xfs/libxfs/xfs_bmap.h
    +++ b/fs/xfs/libxfs/xfs_bmap.h
    @@ -52,9 +52,9 @@ struct xfs_extent_free_item
    {
    xfs_fsblock_t xefi_startblock;/* starting fs block number */
    xfs_extlen_t xefi_blockcount;/* number of blocks in extent */
    + bool xefi_skip_discard;
    struct list_head xefi_list;
    struct xfs_owner_info xefi_oinfo; /* extent owner */
    - bool xefi_skip_discard;
    };

    #define XFS_BMAP_MAX_NMAP 4
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-17 15:10    [W:4.021 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site