xfs: remove OWN_AG rmap when allocating a block from the AGFL
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 17 Aug 2016 01:12:57 +0000 (11:12 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 17 Aug 2016 01:12:57 +0000 (11:12 +1000)
commita03f1a6633144300ef4a3a33e95dfa11866f1299
treecbbbd306ed7884210afbadb840b3bc04030bc2b4
parentf32866fdc9ed077c3bc7160f4f53d6a479201d46
xfs: remove OWN_AG rmap when allocating a block from the AGFL

When we're really tight on space, xfs_alloc_ag_vextent_small() can
allocate a block from the AGFL and give it to the caller.  Since the
caller is never the AGFL-fixing method, we must remove the OWN_AG
reverse mapping because it will clash with whatever rmap the caller
wants to set up.  This bug was discovered by running generic/299
repeatedly.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/libxfs/xfs_alloc.c