forked from Minki/linux
xfs: relocate the eofb/cowb workqueue functions
Move the xfs_{eof,cow}blocks_worker and xfs_queue_{eof,cow}blocks functions further down in the file so that the cleanups in the next patches won't have to pre-declare static functions. No functional changes. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
05a302a170
commit
f929656983
@ -915,69 +915,6 @@ xfs_inode_walk(
|
||||
return last_error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Background scanning to trim post-EOF preallocated space. This is queued
|
||||
* based on the 'speculative_prealloc_lifetime' tunable (5m by default).
|
||||
*/
|
||||
void
|
||||
xfs_queue_eofblocks(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
rcu_read_lock();
|
||||
if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_EOFBLOCKS_TAG))
|
||||
queue_delayed_work(mp->m_eofblocks_workqueue,
|
||||
&mp->m_eofblocks_work,
|
||||
msecs_to_jiffies(xfs_eofb_secs * 1000));
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
void
|
||||
xfs_eofblocks_worker(
|
||||
struct work_struct *work)
|
||||
{
|
||||
struct xfs_mount *mp = container_of(to_delayed_work(work),
|
||||
struct xfs_mount, m_eofblocks_work);
|
||||
|
||||
if (!sb_start_write_trylock(mp->m_super))
|
||||
return;
|
||||
xfs_icache_free_eofblocks(mp, NULL);
|
||||
sb_end_write(mp->m_super);
|
||||
|
||||
xfs_queue_eofblocks(mp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Background scanning to trim preallocated CoW space. This is queued
|
||||
* based on the 'speculative_cow_prealloc_lifetime' tunable (5m by default).
|
||||
* (We'll just piggyback on the post-EOF prealloc space workqueue.)
|
||||
*/
|
||||
void
|
||||
xfs_queue_cowblocks(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
rcu_read_lock();
|
||||
if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_COWBLOCKS_TAG))
|
||||
queue_delayed_work(mp->m_eofblocks_workqueue,
|
||||
&mp->m_cowblocks_work,
|
||||
msecs_to_jiffies(xfs_cowb_secs * 1000));
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
void
|
||||
xfs_cowblocks_worker(
|
||||
struct work_struct *work)
|
||||
{
|
||||
struct xfs_mount *mp = container_of(to_delayed_work(work),
|
||||
struct xfs_mount, m_cowblocks_work);
|
||||
|
||||
if (!sb_start_write_trylock(mp->m_super))
|
||||
return;
|
||||
xfs_icache_free_cowblocks(mp, NULL);
|
||||
sb_end_write(mp->m_super);
|
||||
|
||||
xfs_queue_cowblocks(mp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Grab the inode for reclaim exclusively.
|
||||
*
|
||||
@ -1396,6 +1333,37 @@ xfs_icache_free_eofblocks(
|
||||
XFS_ICI_EOFBLOCKS_TAG);
|
||||
}
|
||||
|
||||
/*
|
||||
* Background scanning to trim post-EOF preallocated space. This is queued
|
||||
* based on the 'speculative_prealloc_lifetime' tunable (5m by default).
|
||||
*/
|
||||
void
|
||||
xfs_queue_eofblocks(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
rcu_read_lock();
|
||||
if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_EOFBLOCKS_TAG))
|
||||
queue_delayed_work(mp->m_eofblocks_workqueue,
|
||||
&mp->m_eofblocks_work,
|
||||
msecs_to_jiffies(xfs_eofb_secs * 1000));
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
void
|
||||
xfs_eofblocks_worker(
|
||||
struct work_struct *work)
|
||||
{
|
||||
struct xfs_mount *mp = container_of(to_delayed_work(work),
|
||||
struct xfs_mount, m_eofblocks_work);
|
||||
|
||||
if (!sb_start_write_trylock(mp->m_super))
|
||||
return;
|
||||
xfs_icache_free_eofblocks(mp, NULL);
|
||||
sb_end_write(mp->m_super);
|
||||
|
||||
xfs_queue_eofblocks(mp);
|
||||
}
|
||||
|
||||
static inline unsigned long
|
||||
xfs_iflag_for_tag(
|
||||
int tag)
|
||||
@ -1608,6 +1576,38 @@ xfs_icache_free_cowblocks(
|
||||
XFS_ICI_COWBLOCKS_TAG);
|
||||
}
|
||||
|
||||
/*
|
||||
* Background scanning to trim preallocated CoW space. This is queued
|
||||
* based on the 'speculative_cow_prealloc_lifetime' tunable (5m by default).
|
||||
* (We'll just piggyback on the post-EOF prealloc space workqueue.)
|
||||
*/
|
||||
void
|
||||
xfs_queue_cowblocks(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
rcu_read_lock();
|
||||
if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_COWBLOCKS_TAG))
|
||||
queue_delayed_work(mp->m_eofblocks_workqueue,
|
||||
&mp->m_cowblocks_work,
|
||||
msecs_to_jiffies(xfs_cowb_secs * 1000));
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
void
|
||||
xfs_cowblocks_worker(
|
||||
struct work_struct *work)
|
||||
{
|
||||
struct xfs_mount *mp = container_of(to_delayed_work(work),
|
||||
struct xfs_mount, m_cowblocks_work);
|
||||
|
||||
if (!sb_start_write_trylock(mp->m_super))
|
||||
return;
|
||||
xfs_icache_free_cowblocks(mp, NULL);
|
||||
sb_end_write(mp->m_super);
|
||||
|
||||
xfs_queue_cowblocks(mp);
|
||||
}
|
||||
|
||||
void
|
||||
xfs_inode_set_cowblocks_tag(
|
||||
xfs_inode_t *ip)
|
||||
|
Loading…
Reference in New Issue
Block a user