aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_sync.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2010-12-16 01:08:41 -0500
committerDave Chinner <david@fromorbit.com>2010-12-16 01:08:41 -0500
commit1a427ab0c1b205d1bda8da0b77ea9d295ac23c57 (patch)
treedc0fffd22282d0da29da43b3ebdeed7c3f5fac1d /fs/xfs/linux-2.6/xfs_sync.c
parent1a3e8f3da09c7082d25b512a0ffe569391e4c09a (diff)
xfs: convert pag_ici_lock to a spin lock
now that we are using RCU protection for the inode cache lookups, the lock is only needed on the modification side. Hence it is not necessary for the lock to be a rwlock as there are no read side holders anymore. Convert it to a spin lock to reflect it's exclusive nature. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_sync.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
index fd38682da851..a02480de9759 100644
--- a/fs/xfs/linux-2.6/xfs_sync.c
+++ b/fs/xfs/linux-2.6/xfs_sync.c
@@ -620,12 +620,12 @@ xfs_inode_set_reclaim_tag(
620 struct xfs_perag *pag; 620 struct xfs_perag *pag;
621 621
622 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); 622 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino));
623 write_lock(&pag->pag_ici_lock); 623 spin_lock(&pag->pag_ici_lock);
624 spin_lock(&ip->i_flags_lock); 624 spin_lock(&ip->i_flags_lock);
625 __xfs_inode_set_reclaim_tag(pag, ip); 625 __xfs_inode_set_reclaim_tag(pag, ip);
626 __xfs_iflags_set(ip, XFS_IRECLAIMABLE); 626 __xfs_iflags_set(ip, XFS_IRECLAIMABLE);
627 spin_unlock(&ip->i_flags_lock); 627 spin_unlock(&ip->i_flags_lock);
628 write_unlock(&pag->pag_ici_lock); 628 spin_unlock(&pag->pag_ici_lock);
629 xfs_perag_put(pag); 629 xfs_perag_put(pag);
630} 630}
631 631
@@ -833,12 +833,12 @@ reclaim:
833 * added to the tree assert that it's been there before to catch 833 * added to the tree assert that it's been there before to catch
834 * problems with the inode life time early on. 834 * problems with the inode life time early on.
835 */ 835 */
836 write_lock(&pag->pag_ici_lock); 836 spin_lock(&pag->pag_ici_lock);
837 if (!radix_tree_delete(&pag->pag_ici_root, 837 if (!radix_tree_delete(&pag->pag_ici_root,
838 XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino))) 838 XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino)))
839 ASSERT(0); 839 ASSERT(0);
840 __xfs_inode_clear_reclaim(pag, ip); 840 __xfs_inode_clear_reclaim(pag, ip);
841 write_unlock(&pag->pag_ici_lock); 841 spin_unlock(&pag->pag_ici_lock);
842 842
843 /* 843 /*
844 * Here we do an (almost) spurious inode lock in order to coordinate 844 * Here we do an (almost) spurious inode lock in order to coordinate