diff options
author | David Woodhouse <dwmw2@infradead.org> | 2006-05-22 16:29:23 +0100 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-05-22 16:29:23 +0100 |
commit | 0eac940b8a087576c66ecf8e0f294f2ceb3b607b (patch) | |
tree | a21f5376f5fec2c21fe23e90e3317f1a1c48cc3e | |
parent | fcb7578719529898aef9edce8e409e457a1c2d15 (diff) | |
download | linux-0eac940b8a087576c66ecf8e0f294f2ceb3b607b.tar.bz2 |
[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 <dwmw2@infradead.org>
-rw-r--r-- | fs/jffs2/erase.c | 1 | ||||
-rw-r--r-- | fs/jffs2/nodemgmt.c | 4 |
2 files changed, 5 insertions, 0 deletions
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)) ; |