diff options
Diffstat (limited to 'fs/inode.c')
| -rw-r--r-- | fs/inode.c | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/fs/inode.c b/fs/inode.c index d06d6d268de9..6ad14a1cd8c9 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
| @@ -1470,42 +1470,6 @@ static void __wait_on_freeing_inode(struct inode *inode) | |||
| 1470 | spin_lock(&inode_lock); | 1470 | spin_lock(&inode_lock); |
| 1471 | } | 1471 | } |
| 1472 | 1472 | ||
| 1473 | /* | ||
| 1474 | * We rarely want to lock two inodes that do not have a parent/child | ||
| 1475 | * relationship (such as directory, child inode) simultaneously. The | ||
| 1476 | * vast majority of file systems should be able to get along fine | ||
| 1477 | * without this. Do not use these functions except as a last resort. | ||
| 1478 | */ | ||
| 1479 | void inode_double_lock(struct inode *inode1, struct inode *inode2) | ||
| 1480 | { | ||
| 1481 | if (inode1 == NULL || inode2 == NULL || inode1 == inode2) { | ||
| 1482 | if (inode1) | ||
| 1483 | mutex_lock(&inode1->i_mutex); | ||
| 1484 | else if (inode2) | ||
| 1485 | mutex_lock(&inode2->i_mutex); | ||
| 1486 | return; | ||
| 1487 | } | ||
| 1488 | |||
| 1489 | if (inode1 < inode2) { | ||
| 1490 | mutex_lock_nested(&inode1->i_mutex, I_MUTEX_PARENT); | ||
| 1491 | mutex_lock_nested(&inode2->i_mutex, I_MUTEX_CHILD); | ||
| 1492 | } else { | ||
| 1493 | mutex_lock_nested(&inode2->i_mutex, I_MUTEX_PARENT); | ||
| 1494 | mutex_lock_nested(&inode1->i_mutex, I_MUTEX_CHILD); | ||
| 1495 | } | ||
| 1496 | } | ||
| 1497 | EXPORT_SYMBOL(inode_double_lock); | ||
| 1498 | |||
| 1499 | void inode_double_unlock(struct inode *inode1, struct inode *inode2) | ||
| 1500 | { | ||
| 1501 | if (inode1) | ||
| 1502 | mutex_unlock(&inode1->i_mutex); | ||
| 1503 | |||
| 1504 | if (inode2 && inode2 != inode1) | ||
| 1505 | mutex_unlock(&inode2->i_mutex); | ||
| 1506 | } | ||
| 1507 | EXPORT_SYMBOL(inode_double_unlock); | ||
| 1508 | |||
| 1509 | static __initdata unsigned long ihash_entries; | 1473 | static __initdata unsigned long ihash_entries; |
| 1510 | static int __init set_ihash_entries(char *str) | 1474 | static int __init set_ihash_entries(char *str) |
| 1511 | { | 1475 | { |
