From 0eac940b8a087576c66ecf8e0f294f2ceb3b607b Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 22 May 2006 16:29:23 +0100 Subject: [PATCH] [JFFS2] Add some preemptive BUG checks for XATTR code In a couple of places, we assume that what's at the end of the ->next_in_ino list is a struct jffs2_inode_cache. Let's check for that, since we expect it to change soon. Signed-off-by: David Woodhouse --- fs/jffs2/erase.c | 1 + fs/jffs2/nodemgmt.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c index 0fc19a2fb5d9..4616fed75730 100644 --- a/fs/jffs2/erase.c +++ b/fs/jffs2/erase.c @@ -230,6 +230,7 @@ static inline void jffs2_remove_node_refs_from_ino_list(struct jffs2_sb_info *c, at the end of the linked list. Stash it and continue from the beginning of the list */ ic = (struct jffs2_inode_cache *)(*prev); + BUG_ON(ic->class != RAWNODE_CLASS_INODE_CACHE); prev = &ic->nodes; continue; } diff --git a/fs/jffs2/nodemgmt.c b/fs/jffs2/nodemgmt.c index e10e58eab8e5..34a452bdde05 100644 --- a/fs/jffs2/nodemgmt.c +++ b/fs/jffs2/nodemgmt.c @@ -661,6 +661,10 @@ void jffs2_mark_node_obsolete(struct jffs2_sb_info *c, struct jffs2_raw_node_ref spin_lock(&c->erase_completion_lock); ic = jffs2_raw_ref_to_ic(ref); + /* It seems we should never call jffs2_mark_node_obsolete() for + XATTR nodes.... yet. Make sure we notice if/when we change + that :) */ + BUG_ON(ic->class != RAWNODE_CLASS_INODE_CACHE); for (p = &ic->nodes; (*p) != ref; p = &((*p)->next_in_ino)) ; -- GitLab