summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_icache.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_icache.c')
-rw-r--r--fs/xfs/xfs_icache.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c
index f0e77ed0b8bb..b9214733d0c3 100644
--- a/fs/xfs/xfs_icache.c
+++ b/fs/xfs/xfs_icache.c
@@ -1752,8 +1752,14 @@ xfs_inode_mark_reclaimable(
{
struct xfs_mount *mp = ip->i_mount;
struct xfs_perag *pag;
+ bool need_inactive = xfs_inode_needs_inactive(ip);
- xfs_inactive(ip);
+ if (!need_inactive) {
+ /* Going straight to reclaim, so drop the dquots. */
+ xfs_qm_dqdetach(ip);
+ } else {
+ xfs_inactive(ip);
+ }
if (!XFS_FORCED_SHUTDOWN(mp) && ip->i_delayed_blks) {
xfs_check_delalloc(ip, XFS_DATA_FORK);