mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
xfs: flush dirty data and drain directios before scrubbing cow fork
When we're scrubbing the COW fork, we need to take MMAPLOCK_EXCL to prevent page_mkwrite from modifying any inode state. The ILOCK should suffice to avoid confusing online fsck, but let's take the same locks that we do everywhere else. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
8e698ee72c
commit
397b2d7e0f
@ -42,12 +42,12 @@ xchk_setup_inode_bmap(
|
||||
xfs_ilock(sc->ip, XFS_IOLOCK_EXCL);
|
||||
|
||||
/*
|
||||
* We don't want any ephemeral data fork updates sitting around
|
||||
* We don't want any ephemeral data/cow fork updates sitting around
|
||||
* while we inspect block mappings, so wait for directio to finish
|
||||
* and flush dirty data if we have delalloc reservations.
|
||||
*/
|
||||
if (S_ISREG(VFS_I(sc->ip)->i_mode) &&
|
||||
sc->sm->sm_type == XFS_SCRUB_TYPE_BMBTD) {
|
||||
sc->sm->sm_type != XFS_SCRUB_TYPE_BMBTA) {
|
||||
struct address_space *mapping = VFS_I(sc->ip)->i_mapping;
|
||||
|
||||
sc->ilock_flags |= XFS_MMAPLOCK_EXCL;
|
||||
|
Loading…
Reference in New Issue
Block a user