[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Holding alloc_sem in jffs2_mark_node_obsolete().
We check for the alloc_sem being held in jffs2_mark_node_obsolete().
Thomas -- are you seeing the BUG() below? If not, why not? We can get here
from read_inode() without the alloc_sem being held, AFAICT. If this
debugging check has served its purpose and made us fix all the places where
we weren't holding alloc_sem for long enough during writes, I suspect we
can take it out again now, and stop getting alloc_sem solely to placate
this rather than for real reasons. OK?
/* We've changed the rules slightly. After
writing a node you now mustn't drop the
alloc_sem before you've finished all the
list management - this is so that when we
get here, we know that no other nodes have
been written, and the above check on wbuf
is valid - wbuf_len is nonzero IFF the node
which obsoletes this node is still in the
wbuf.
So we BUG() if that new rule is broken, to
make sure we catch it and fix it.
*/
if (!down_trylock(&c->alloc_sem)) {
up(&c->alloc_sem);
printk(KERN_CRIT "jffs2_mark_node_obsolete() called with wbuf active but alloc_sem not locked!\n");
BUG();
}
--
dwmw2
To unsubscribe from this list: send the line "unsubscribe jffs-dev" in
the body of a message to majordomo@xxxxxxx.com