• B
    xfs: allow null firstblock in xfs_bmapi_write() when tp is null · 3ae2d891
    Brian Foster 提交于
    xfs_bmapi_write() always expects a valid firstblock pointer. It
    immediately dereferences the pointer to help determine how to
    initialize the bma.minleft field. The remaining accesses are
    related to modifying btree format forks, which is only relevant for
    !COW fork callers.
    
    The reflink code passes a NULL transaction to xfs_bmapi_write() in a
    couple places that do COW fork unwritten conversion. The purpose of
    the firstblock field is to track the first block allocation in the
    current transaction, so technically firstblock should not be
    required for these callers either.
    
    Tweak xfs_bmapi_write() to initialize the bma correctly without
    accessing the firstblock pointer if no transaction is provided in
    the first place. Update the reflink callers to pass NULL instead of
    otherwise unused firstblock references.
    Signed-off-by: NBrian Foster <bfoster@redhat.com>
    Reviewed-by: NChristoph Hellwig <hch@lst.de>
    Reviewed-by: NDarrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: NDarrick J. Wong <darrick.wong@oracle.com>
    3ae2d891
xfs_reflink.c 42.9 KB