(re)register_binfmt returns with -EBUSY
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. Signed-off-by: Kalash Nainwal <kalash.nainwal@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0f95b7fc83
commit
98701d1b0f
1 changed files with 1 additions and 0 deletions
|
@ -100,6 +100,7 @@ int unregister_binfmt(struct linux_binfmt * fmt)
|
|||
while (*tmp) {
|
||||
if (fmt == *tmp) {
|
||||
*tmp = fmt->next;
|
||||
fmt->next = NULL;
|
||||
write_unlock(&binfmt_lock);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue