diff options
author | David Woodhouse <dwmw2@infradead.org> | 2005-02-27 18:01:36 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-05-23 06:46:14 -0400 |
commit | 67e345d17ff8c2085a54c293001ae548f7be7b21 (patch) | |
tree | 07f2829e98c22c5d1edd8832a06a11cbdde85f24 /fs/jffs2/nodemgmt.c | |
parent | 002fa30170f9500ac31fa22931c689029af7f27b (diff) |
[JFFS2] Prevent ino cache removal for inodes in use
Don't remove inocache for inodes which are in read_inode() or
clear_inode() until they're done.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/jffs2/nodemgmt.c')
-rw-r--r-- | fs/jffs2/nodemgmt.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c index 5e1e8caf54e8..f9dcac1415ac 100644 --- a/fs/jffs2/nodemgmt.c +++ b/fs/jffs2/nodemgmt.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * For licensing information, see the file 'LICENCE' in this directory. | 8 | * For licensing information, see the file 'LICENCE' in this directory. |
9 | * | 9 | * |
10 | * $Id: nodemgmt.c,v 1.117 2005/01/25 20:11:11 hammache Exp $ | 10 | * $Id: nodemgmt.c,v 1.118 2005/02/27 23:01:32 dwmw2 Exp $ |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
@@ -593,11 +593,8 @@ void jffs2_mark_node_obsolete(struct jffs2_sb_info *c, struct jffs2_raw_node_ref | |||
593 | *p = ref->next_in_ino; | 593 | *p = ref->next_in_ino; |
594 | ref->next_in_ino = NULL; | 594 | ref->next_in_ino = NULL; |
595 | 595 | ||
596 | if (ic->nodes == (void *)ic) { | 596 | if (ic->nodes == (void *)ic) |
597 | D1(printk(KERN_DEBUG "inocache for ino #%u is all gone now. Freeing\n", ic->ino)); | ||
598 | jffs2_del_ino_cache(c, ic); | 597 | jffs2_del_ino_cache(c, ic); |
599 | jffs2_free_inode_cache(ic); | ||
600 | } | ||
601 | 598 | ||
602 | spin_unlock(&c->erase_completion_lock); | 599 | spin_unlock(&c->erase_completion_lock); |
603 | } | 600 | } |