diff options
Diffstat (limited to 'fs/xfs/linux-2.6')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_sync.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 81976ffed7d6..3a1d229b4784 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c | |||
@@ -150,17 +150,17 @@ xfs_inode_ag_iter_next_pag( | |||
150 | int found; | 150 | int found; |
151 | int ref; | 151 | int ref; |
152 | 152 | ||
153 | spin_lock(&mp->m_perag_lock); | 153 | rcu_read_lock(); |
154 | found = radix_tree_gang_lookup_tag(&mp->m_perag_tree, | 154 | found = radix_tree_gang_lookup_tag(&mp->m_perag_tree, |
155 | (void **)&pag, *first, 1, tag); | 155 | (void **)&pag, *first, 1, tag); |
156 | if (found <= 0) { | 156 | if (found <= 0) { |
157 | spin_unlock(&mp->m_perag_lock); | 157 | rcu_read_unlock(); |
158 | return NULL; | 158 | return NULL; |
159 | } | 159 | } |
160 | *first = pag->pag_agno + 1; | 160 | *first = pag->pag_agno + 1; |
161 | /* open coded pag reference increment */ | 161 | /* open coded pag reference increment */ |
162 | ref = atomic_inc_return(&pag->pag_ref); | 162 | ref = atomic_inc_return(&pag->pag_ref); |
163 | spin_unlock(&mp->m_perag_lock); | 163 | rcu_read_unlock(); |
164 | trace_xfs_perag_get_reclaim(mp, pag->pag_agno, ref, _RET_IP_); | 164 | trace_xfs_perag_get_reclaim(mp, pag->pag_agno, ref, _RET_IP_); |
165 | } else { | 165 | } else { |
166 | pag = xfs_perag_get(mp, *first); | 166 | pag = xfs_perag_get(mp, *first); |