diff options
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/fs/inode.c b/fs/inode.c index 67880e604399..f5f7c06c36fb 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -798,11 +798,10 @@ static struct inode *find_inode(struct super_block *sb, | |||
798 | int (*test)(struct inode *, void *), | 798 | int (*test)(struct inode *, void *), |
799 | void *data) | 799 | void *data) |
800 | { | 800 | { |
801 | struct hlist_node *node; | ||
802 | struct inode *inode = NULL; | 801 | struct inode *inode = NULL; |
803 | 802 | ||
804 | repeat: | 803 | repeat: |
805 | hlist_for_each_entry(inode, node, head, i_hash) { | 804 | hlist_for_each_entry(inode, head, i_hash) { |
806 | spin_lock(&inode->i_lock); | 805 | spin_lock(&inode->i_lock); |
807 | if (inode->i_sb != sb) { | 806 | if (inode->i_sb != sb) { |
808 | spin_unlock(&inode->i_lock); | 807 | spin_unlock(&inode->i_lock); |
@@ -830,11 +829,10 @@ repeat: | |||
830 | static struct inode *find_inode_fast(struct super_block *sb, | 829 | static struct inode *find_inode_fast(struct super_block *sb, |
831 | struct hlist_head *head, unsigned long ino) | 830 | struct hlist_head *head, unsigned long ino) |
832 | { | 831 | { |
833 | struct hlist_node *node; | ||
834 | struct inode *inode = NULL; | 832 | struct inode *inode = NULL; |
835 | 833 | ||
836 | repeat: | 834 | repeat: |
837 | hlist_for_each_entry(inode, node, head, i_hash) { | 835 | hlist_for_each_entry(inode, head, i_hash) { |
838 | spin_lock(&inode->i_lock); | 836 | spin_lock(&inode->i_lock); |
839 | if (inode->i_ino != ino) { | 837 | if (inode->i_ino != ino) { |
840 | spin_unlock(&inode->i_lock); | 838 | spin_unlock(&inode->i_lock); |
@@ -1132,11 +1130,10 @@ EXPORT_SYMBOL(iget_locked); | |||
1132 | static int test_inode_iunique(struct super_block *sb, unsigned long ino) | 1130 | static int test_inode_iunique(struct super_block *sb, unsigned long ino) |
1133 | { | 1131 | { |
1134 | struct hlist_head *b = inode_hashtable + hash(sb, ino); | 1132 | struct hlist_head *b = inode_hashtable + hash(sb, ino); |
1135 | struct hlist_node *node; | ||
1136 | struct inode *inode; | 1133 | struct inode *inode; |
1137 | 1134 | ||
1138 | spin_lock(&inode_hash_lock); | 1135 | spin_lock(&inode_hash_lock); |
1139 | hlist_for_each_entry(inode, node, b, i_hash) { | 1136 | hlist_for_each_entry(inode, b, i_hash) { |
1140 | if (inode->i_ino == ino && inode->i_sb == sb) { | 1137 | if (inode->i_ino == ino && inode->i_sb == sb) { |
1141 | spin_unlock(&inode_hash_lock); | 1138 | spin_unlock(&inode_hash_lock); |
1142 | return 0; | 1139 | return 0; |
@@ -1291,10 +1288,9 @@ int insert_inode_locked(struct inode *inode) | |||
1291 | struct hlist_head *head = inode_hashtable + hash(sb, ino); | 1288 | struct hlist_head *head = inode_hashtable + hash(sb, ino); |
1292 | 1289 | ||
1293 | while (1) { | 1290 | while (1) { |
1294 | struct hlist_node *node; | ||
1295 | struct inode *old = NULL; | 1291 | struct inode *old = NULL; |
1296 | spin_lock(&inode_hash_lock); | 1292 | spin_lock(&inode_hash_lock); |
1297 | hlist_for_each_entry(old, node, head, i_hash) { | 1293 | hlist_for_each_entry(old, head, i_hash) { |
1298 | if (old->i_ino != ino) | 1294 | if (old->i_ino != ino) |
1299 | continue; | 1295 | continue; |
1300 | if (old->i_sb != sb) | 1296 | if (old->i_sb != sb) |
@@ -1306,7 +1302,7 @@ int insert_inode_locked(struct inode *inode) | |||
1306 | } | 1302 | } |
1307 | break; | 1303 | break; |
1308 | } | 1304 | } |
1309 | if (likely(!node)) { | 1305 | if (likely(!old)) { |
1310 | spin_lock(&inode->i_lock); | 1306 | spin_lock(&inode->i_lock); |
1311 | inode->i_state |= I_NEW; | 1307 | inode->i_state |= I_NEW; |
1312 | hlist_add_head(&inode->i_hash, head); | 1308 | hlist_add_head(&inode->i_hash, head); |
@@ -1334,11 +1330,10 @@ int insert_inode_locked4(struct inode *inode, unsigned long hashval, | |||
1334 | struct hlist_head *head = inode_hashtable + hash(sb, hashval); | 1330 | struct hlist_head *head = inode_hashtable + hash(sb, hashval); |
1335 | 1331 | ||
1336 | while (1) { | 1332 | while (1) { |
1337 | struct hlist_node *node; | ||
1338 | struct inode *old = NULL; | 1333 | struct inode *old = NULL; |
1339 | 1334 | ||
1340 | spin_lock(&inode_hash_lock); | 1335 | spin_lock(&inode_hash_lock); |
1341 | hlist_for_each_entry(old, node, head, i_hash) { | 1336 | hlist_for_each_entry(old, head, i_hash) { |
1342 | if (old->i_sb != sb) | 1337 | if (old->i_sb != sb) |
1343 | continue; | 1338 | continue; |
1344 | if (!test(old, data)) | 1339 | if (!test(old, data)) |
@@ -1350,7 +1345,7 @@ int insert_inode_locked4(struct inode *inode, unsigned long hashval, | |||
1350 | } | 1345 | } |
1351 | break; | 1346 | break; |
1352 | } | 1347 | } |
1353 | if (likely(!node)) { | 1348 | if (likely(!old)) { |
1354 | spin_lock(&inode->i_lock); | 1349 | spin_lock(&inode->i_lock); |
1355 | inode->i_state |= I_NEW; | 1350 | inode->i_state |= I_NEW; |
1356 | hlist_add_head(&inode->i_hash, head); | 1351 | hlist_add_head(&inode->i_hash, head); |