Re: Oops with tmpfs on both 2.4.22 & 2.6.0-test11

From: Oleg Drokin
Date: Sun Nov 30 2003 - 16:22:43 EST


Hello!

William Lee Irwin III <wli@xxxxxxxxxxxxxx> wrote:

WLII> Could you try 2.6 with the following patch and send in the resulting
WLII> oops/BUG? Please turn on kallsyms for the run.
WLII> while (n && p != &file->f_dentry->d_subdirs) {
WLII> struct dentry *next;
WLII> next = list_entry(p, struct dentry, d_child);
WLII> + BUG_ON(!next);
WLII> if (!d_unhashed(next) && next->d_inode)
WLII> n--;
WLII> p = p->next;
WLII> }

This loop is never run since n is 0

WLII> + BUG_ON(!cursor);
WLII> list_del(&cursor->d_child);
WLII> list_add_tail(&cursor->d_child, p);

The problem seems to be because &cursor->d_child is equal to p,
so on list_del we zero p->prev, and then assign to p->prev->next in
list_add_tail.
&cursor->d_child is equal to p probably because we just created it this
way in dcache_dir_open()

Bye,
Oleg
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/