|
@@ -260,7 +260,7 @@ xfs_iget_cache_hit(
|
|
|
goto out_error;
|
|
|
}
|
|
|
|
|
|
- write_lock(&pag->pag_ici_lock);
|
|
|
+ spin_lock(&pag->pag_ici_lock);
|
|
|
spin_lock(&ip->i_flags_lock);
|
|
|
ip->i_flags &= ~(XFS_IRECLAIMABLE | XFS_IRECLAIM);
|
|
|
ip->i_flags |= XFS_INEW;
|
|
@@ -273,7 +273,7 @@ xfs_iget_cache_hit(
|
|
|
&xfs_iolock_active, "xfs_iolock_active");
|
|
|
|
|
|
spin_unlock(&ip->i_flags_lock);
|
|
|
- write_unlock(&pag->pag_ici_lock);
|
|
|
+ spin_unlock(&pag->pag_ici_lock);
|
|
|
} else {
|
|
|
/* If the VFS inode is being torn down, pause and try again. */
|
|
|
if (!igrab(inode)) {
|
|
@@ -351,7 +351,7 @@ xfs_iget_cache_miss(
|
|
|
BUG();
|
|
|
}
|
|
|
|
|
|
- write_lock(&pag->pag_ici_lock);
|
|
|
+ spin_lock(&pag->pag_ici_lock);
|
|
|
|
|
|
/* insert the new inode */
|
|
|
error = radix_tree_insert(&pag->pag_ici_root, agino, ip);
|
|
@@ -366,14 +366,14 @@ xfs_iget_cache_miss(
|
|
|
ip->i_udquot = ip->i_gdquot = NULL;
|
|
|
xfs_iflags_set(ip, XFS_INEW);
|
|
|
|
|
|
- write_unlock(&pag->pag_ici_lock);
|
|
|
+ spin_unlock(&pag->pag_ici_lock);
|
|
|
radix_tree_preload_end();
|
|
|
|
|
|
*ipp = ip;
|
|
|
return 0;
|
|
|
|
|
|
out_preload_end:
|
|
|
- write_unlock(&pag->pag_ici_lock);
|
|
|
+ spin_unlock(&pag->pag_ici_lock);
|
|
|
radix_tree_preload_end();
|
|
|
if (lock_flags)
|
|
|
xfs_iunlock(ip, lock_flags);
|