]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
xfs: automatic dfops buffer relogging
authorBrian Foster <bfoster@redhat.com>
Fri, 5 Oct 2018 02:36:12 +0000 (21:36 -0500)
committerEric Sandeen <sandeen@redhat.com>
Fri, 5 Oct 2018 02:36:12 +0000 (21:36 -0500)
commitf2ea6bf0786932188fa0ee82a69ed74293603b4a
tree827b555b0dba7b30dc3fa77d28cb1595461c9555
parent8364f6d0f4de3ef3afa129ea051abbe99de41949
xfs: automatic dfops buffer relogging

Source kernel commit: 82ff27bc52a88cb5cc400bfa64e210d3ec8dfebd

Buffers that are held across deferred operations are explicitly
joined to the dfops structure to ensure appropriate relogging.
While buffers are currently joined explicitly, we can detect the
conditions that require relogging at dfops finish time by inspecting
the transaction item list for held buffers.

Replace the xfs_defer_bjoin() infrastructure with such detection and
automatic relogging of held buffers. This eliminates the need for
the per-dfops buffer list, replaced by an on-stack variant in
xfs_defer_trans_roll().

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
include/xfs_trans.h
libxfs/xfs_attr.c
libxfs/xfs_defer.c
libxfs/xfs_defer.h