aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem B. Bityuckiy <dedekind@infradead.org>2005-03-20 12:46:23 -0500
committerThomas Gleixner <tglx@mtd.linutronix.de>2005-05-23 07:02:39 -0400
commit437316d9b5ea142ca7ab9ef131c28506c407d1d6 (patch)
tree1edf9fa6fc996bb873fad59b0019d3a985ded794
parenta42163d7c331c2532551f675d6616a00e1e87fe9 (diff)
[JFFS2] Forbid to free inode_cache objects if its nlink isn't zero.
Signed-off-by: Artem B. Bityuckiy <dedekind@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--fs/jffs2/erase.c4
-rw-r--r--fs/jffs2/nodemgmt.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
index d1ae565352a6..bed6e1b8d824 100644
--- a/fs/jffs2/erase.c
+++ b/fs/jffs2/erase.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: erase.c,v 1.72 2005/02/27 23:01:32 dwmw2 Exp $ 10 * $Id: erase.c,v 1.74 2005/03/20 17:46:20 dedekind Exp $
11 * 11 *
12 */ 12 */
13 13
@@ -277,7 +277,7 @@ static inline void jffs2_remove_node_refs_from_ino_list(struct jffs2_sb_info *c,
277 printk("\n"); 277 printk("\n");
278 }); 278 });
279 279
280 if (ic->nodes == (void *)ic) 280 if (ic->nodes == (void *)ic && ic->nlink == 0)
281 jffs2_del_ino_cache(c, ic); 281 jffs2_del_ino_cache(c, ic);
282} 282}
283 283
diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c
index 456adf020f22..a8e198231230 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.119 2005/02/28 08:21:05 dedekind Exp $ 10 * $Id: nodemgmt.c,v 1.120 2005/03/20 17:46:20 dedekind Exp $
11 * 11 *
12 */ 12 */
13 13
@@ -594,7 +594,7 @@ void jffs2_mark_node_obsolete(struct jffs2_sb_info *c, struct jffs2_raw_node_ref
594 *p = ref->next_in_ino; 594 *p = ref->next_in_ino;
595 ref->next_in_ino = NULL; 595 ref->next_in_ino = NULL;
596 596
597 if (ic->nodes == (void *)ic) 597 if (ic->nodes == (void *)ic && ic->nlink == 0)
598 jffs2_del_ino_cache(c, ic); 598 jffs2_del_ino_cache(c, ic);
599 599
600 spin_unlock(&c->erase_completion_lock); 600 spin_unlock(&c->erase_completion_lock);