Re: BUG on unloading the fuse module

From: Fengguang Wu
Date: Fri Oct 05 2007 - 07:01:37 EST


On Fri, Oct 05, 2007 at 12:54:09PM +0200, Miklos Szeredi wrote:
> > > > In 2.6.23-rc8-mm2, the fuse module always bugs on unloading.
> > >
> > > It's fixed in Greg's patch queue.
> > >
> > > This patch against -mm will also fix it.
> >
> > Oh no, it panics:
>
> How about this one?

Yes, it did the trick.

Thank you!
Fengguang
> ---
>
> Index: linux/lib/kobject.c
> ===================================================================
> --- linux.orig/lib/kobject.c 2007-10-02 17:20:04.000000000 +0200
> +++ linux/lib/kobject.c 2007-10-05 12:52:52.000000000 +0200
> @@ -498,18 +498,18 @@ void kobject_cleanup(struct kobject * ko
> struct kobj_type * t = get_ktype(kobj);
> struct kset * s = kobj->kset;
> struct kobject * parent = kobj->parent;
> - const char *k_name = kobj->k_name;
>
> pr_debug("kobject %s: cleaning up\n",kobject_name(kobj));
> - kobj->k_name = NULL;
> - if (t && t->release)
> + if (t && t->release) {
> + const char *k_name = kobj->k_name;
> + kobj->k_name = NULL;
> t->release(kobj);
> - else
> + kfree(k_name);
> + } else
> pr_debug("kobject '%s' does not have a release() function, "
> "if this is not a directory kobject, it is broken "
> "and must be fixed.\n",
> - k_name);
> - kfree(k_name);
> + kobj->k_name);
> if (s)
> kset_put(s);
> kobject_put(parent);

-
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/