[PATCH 1/3]fs/inode: iunique() Optimize Performance

From: Liuweni
Date: Wed Nov 25 2009 - 09:05:39 EST


---
move the if condition out the while{}.
While the function executing, the if
condition won't check again and again.
And this code won't change the function
of iunique().

---
Signed-off-by: Liuwenyi<qingshenlwy@xxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Nick Piggin <npiggin@xxxxxxx>
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
diff --git a/fs/inode.c b/fs/inode.c
index 4d8e3be..8ff1e99 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -838,9 +838,10 @@ ino_t iunique(struct super_block *sb, ino_t max_reserved)
ino_t res;

spin_lock(&inode_lock);
+
+ if (counter <= max_reserved)
+ counter = max_reserved + 1;
do {
- if (counter <= max_reserved)
- counter = max_reserved + 1;
res = counter++;
head = inode_hashtable + hash(sb, res);
inode = find_inode_fast(sb, head, res);


--------------
Best Regards,
Liuweni
2009-11-25

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/