aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_mount.h
diff options
context:
space:
mode:
authorBrian Foster <bfoster@redhat.com>2012-11-06 09:50:47 -0500
committerBen Myers <bpm@sgi.com>2012-11-08 16:34:59 -0500
commit579b62faa5fb16ffeeb88cda5e2c4e95730881af (patch)
treeb0d71a823d2b6e5718786f99921968109d8f644e /fs/xfs/xfs_mount.h
parent00ca79a04bef1a1b30ef8afd992d905b6d986caf (diff)
xfs: add background scanning to clear eofblocks inodes
Create a new mount workqueue and delayed_work to enable background scanning and freeing of eofblocks inodes. The scanner kicks in once speculative preallocation occurs and stops requeueing itself when no eofblocks inodes exist. The scan interval is based on the new 'speculative_prealloc_lifetime' tunable (default to 5m). The background scanner performs unfiltered, best effort scans (which skips inodes under lock contention or with a dirty cache mapping). Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_mount.h')
-rw-r--r--fs/xfs/xfs_mount.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index a631ca3b9065..dc306a09f56f 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -196,6 +196,8 @@ typedef struct xfs_mount {
196#endif 196#endif
197 struct xfs_mru_cache *m_filestream; /* per-mount filestream data */ 197 struct xfs_mru_cache *m_filestream; /* per-mount filestream data */
198 struct delayed_work m_reclaim_work; /* background inode reclaim */ 198 struct delayed_work m_reclaim_work; /* background inode reclaim */
199 struct delayed_work m_eofblocks_work; /* background eof blocks
200 trimming */
199 __int64_t m_update_flags; /* sb flags we need to update 201 __int64_t m_update_flags; /* sb flags we need to update
200 on the next remount,rw */ 202 on the next remount,rw */
201 struct shrinker m_inode_shrink; /* inode reclaim shrinker */ 203 struct shrinker m_inode_shrink; /* inode reclaim shrinker */
@@ -207,6 +209,7 @@ typedef struct xfs_mount {
207 struct workqueue_struct *m_cil_workqueue; 209 struct workqueue_struct *m_cil_workqueue;
208 struct workqueue_struct *m_reclaim_workqueue; 210 struct workqueue_struct *m_reclaim_workqueue;
209 struct workqueue_struct *m_log_workqueue; 211 struct workqueue_struct *m_log_workqueue;
212 struct workqueue_struct *m_eofblocks_workqueue;
210} xfs_mount_t; 213} xfs_mount_t;
211 214
212/* 215/*