Messages in this thread | | | Date | Mon, 2 Apr 2007 17:40:33 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] (re)register_binfmt returns with -EBUSY |
| |
On Mon, 2 Apr 2007 18:24:15 +0530 "kalash nainwal" <kalash.nainwal@gmail.com> wrote:
> When a binary format is unregistered and re-registered, > register_binfmt fails with -EBUSY. The reason is that > unregister_binfmt does not set fmt->next to NULL, and seeing > (fmt->next != NULL), register_binfmt fails with -EBUSY. > > One can find his way around by explicitly setting fmt->next to NULL > after unregistering, but that is kind of unclean (one should better be > using only the interfaces, and not the interal members, isn't it?) > > Attached one-liner can fix it (for 2.6.20).
Yes, that'll fix it.
But I wonder why register_binfmt() even checks that the to-be-registered linux_binfmt has a non-null fmt->next? Presumably that's there to catch erroneous re-registration of an already-registered format.
All very odd. It looks like that code should be converted to list_heads anyway... - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |