From 7d200960d4f3d1b50c3b9e9688408d9f81c66ff4 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Wed, 13 Apr 2005 14:22:38 +0100 Subject: [JFFS2] Fix inode allocation race Signed-off-by: David Woodhouse Signed-off-by: Thomas Gleixner --- fs/jffs2/README.Locking | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'fs/jffs2/README.Locking') diff --git a/fs/jffs2/README.Locking b/fs/jffs2/README.Locking index 49771cf8513a..b7943439b6ec 100644 --- a/fs/jffs2/README.Locking +++ b/fs/jffs2/README.Locking @@ -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. -- cgit v1.2.3