Message ID | 161142793633.2171939.2299668448645740426.stgit@magnolia (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xfs: try harder to reclaim space when we run out | expand |
On Sat, Jan 23, 2021 at 10:52:16AM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Buffered writers who have run out of quota reservation call > xfs_inode_free_quota_blocks to try to free any space reservations that > might reduce the quota usage. Unfortunately, the buffered write path > treats "out of project quota" the same as "out of overall space" so this > function has never supported scanning for space that might ease an "out > of project quota" condition. > > We're about to start using this function for cases where we actually > /can/ tell if we're out of project quota, so add in this functionality. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > Reviewed-by: Christoph Hellwig <hch@lst.de> > --- Reviewed-by: Brian Foster <bfoster@redhat.com> > fs/xfs/xfs_icache.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > > diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c > index 89f9e692fde7..10c1a0dee17d 100644 > --- a/fs/xfs/xfs_icache.c > +++ b/fs/xfs/xfs_icache.c > @@ -1434,6 +1434,15 @@ xfs_inode_free_quota_blocks( > } > } > > + if (XFS_IS_PQUOTA_ENFORCED(ip->i_mount)) { > + dq = xfs_inode_dquot(ip, XFS_DQTYPE_PROJ); > + if (dq && xfs_dquot_lowsp(dq)) { > + eofb.eof_prid = ip->i_d.di_projid; > + eofb.eof_flags |= XFS_EOF_FLAGS_PRID; > + do_work = true; > + } > + } > + > if (!do_work) > return false; > >
diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c index 89f9e692fde7..10c1a0dee17d 100644 --- a/fs/xfs/xfs_icache.c +++ b/fs/xfs/xfs_icache.c @@ -1434,6 +1434,15 @@ xfs_inode_free_quota_blocks( } } + if (XFS_IS_PQUOTA_ENFORCED(ip->i_mount)) { + dq = xfs_inode_dquot(ip, XFS_DQTYPE_PROJ); + if (dq && xfs_dquot_lowsp(dq)) { + eofb.eof_prid = ip->i_d.di_projid; + eofb.eof_flags |= XFS_EOF_FLAGS_PRID; + do_work = true; + } + } + if (!do_work) return false;