diff options
Diffstat (limited to 'fs/xfs/xfs_iget.c')
-rw-r--r-- | fs/xfs/xfs_iget.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 1256746b249f..58865fe47806 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c | |||
@@ -431,14 +431,13 @@ xfs_ireclaim(xfs_inode_t *ip) | |||
431 | xfs_iextract(ip); | 431 | xfs_iextract(ip); |
432 | 432 | ||
433 | /* | 433 | /* |
434 | * Here we do a spurious inode lock in order to coordinate with | 434 | * Here we do a spurious inode lock in order to coordinate with inode |
435 | * xfs_sync(). This is because xfs_sync() references the inodes | 435 | * cache radix tree lookups. This is because the lookup can reference |
436 | * in the mount list without taking references on the corresponding | 436 | * the inodes in the cache without taking references. We make that OK |
437 | * vnodes. We make that OK here by ensuring that we wait until | 437 | * here by ensuring that we wait until the inode is unlocked after the |
438 | * the inode is unlocked in xfs_sync() before we go ahead and | 438 | * lookup before we go ahead and free it. We get both the ilock and |
439 | * free it. We get both the regular lock and the io lock because | 439 | * the iolock because the code may need to drop the ilock one but will |
440 | * the xfs_sync() code may need to drop the regular one but will | 440 | * still hold the iolock. |
441 | * still hold the io lock. | ||
442 | */ | 441 | */ |
443 | xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); | 442 | xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); |
444 | 443 | ||