diff --git a/fs/super.c b/fs/super.c index cfadab2cbf35..adc18652302b 100644 --- a/fs/super.c +++ b/fs/super.c @@ -80,6 +80,11 @@ static unsigned long super_cache_scan(struct shrinker *shrink, if (!trylock_super(sb)) return SHRINK_STOP; + if (sb->s_writers.frozen != SB_UNFROZEN) { + up_read(&sb->s_umount); + return SHRINK_STOP; + }Whatever happened to "let's just fsfreeze the filesystems shortly before freezing the system? Did someone find a reason why that wouldn't work? Also, uh, doesn't this disable memory reclaim for frozen filesystems? Maybe we all need to go review the xfs io-less inode reclaim series so we can stop running transactions in reclaim... I can't merge any of it until the mm changes go upstream.IO-less reclaim doesn't prevent ->destroy_inode from having to run transactions. e.g. this is the path through which unlink does inode freeing. Background inode inactivation is the patchset that addresses this problem... :)
Sound backgroup inode inactivation is only for xfs? I suppose this is a generic issue, other fs will also suffer this?
Thanks,
Junxiao.
Cheers, Dave.