xfs: Ensure inode reclaim can run during quotacheck
authorDave Chinner <david@fromorbit.com>
Fri, 13 Apr 2012 12:10:44 +0000 (12:10 +0000)
committerBen Myers <bpm@sgi.com>
Tue, 17 Apr 2012 16:19:47 +0000 (11:19 -0500)
commit8a00ebe4cfc90eda9ecb575ba97e22021cd8cf70
tree06e97168b62fb7acdf44f6610c1e6ea268822f3d
parentda5bf95e3cdca348327c82568c2860229c0daaa2
xfs: Ensure inode reclaim can run during quotacheck

Because the mount process can run a quotacheck and consume lots of
inodes, we need to be able to run periodic inode reclaim during the
mount process. This will prevent running the system out of memory
during quota checks.

This essentially reverts 2bcf6e97, but that is safe to do now that
the quota sync code that was causing problems during long quotacheck
executions is now gone.

The reclaim work is currently protected from running during the
unmount process by a check against MS_ACTIVE. Unfortunately, this
also means that the reclaim work cannot run during mount.  The
unmount process should stop the reclaim cleanly before freeing
anything that the reclaim work depends on, so there is no need to
have this guard in place.

Also, the inode reclaim work is demand driven, so there is no need
to start it immediately during mount. It will be started the moment
an inode is queued for reclaim, so qutoacheck will trigger it just
fine.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_super.c
fs/xfs/xfs_sync.c