[JFFS2] Fix inode allocation race

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
David Woodhouse
2005-04-13 14:22:38 +01:00
committed by Thomas Gleixner
parent 0a18cde60f
commit 7d200960d4
3 changed files with 13 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
$Id: README.Locking,v 1.9 2004/11/20 10:35:40 dwmw2 Exp $
$Id: README.Locking,v 1.12 2005/04/13 13:22:35 dwmw2 Exp $
JFFS2 LOCKING DOCUMENTATION
---------------------------
@@ -108,6 +108,10 @@ in-core jffs2_inode_cache objects (each inode in JFFS2 has the
correspondent jffs2_inode_cache object). So, the inocache_lock
has to be locked while walking the c->inocache_list hash buckets.
This spinlock also covers allocation of new inode numbers, which is
currently just '++->highest_ino++', but might one day get more complicated
if we need to deal with wrapping after 4 milliard inode numbers are used.
Note, the f->sem guarantees that the correspondent jffs2_inode_cache
will not be removed. So, it is allowed to access it without locking
the inocache_lock spinlock.