|
|
@@ -1395,18 +1395,14 @@ int do_execve(char * filename,
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
-int set_binfmt(struct linux_binfmt *new)
|
|
|
+void set_binfmt(struct linux_binfmt *new)
|
|
|
{
|
|
|
- struct linux_binfmt *old = current->binfmt;
|
|
|
+ if (current->binfmt)
|
|
|
+ module_put(current->binfmt->module);
|
|
|
|
|
|
- if (new) {
|
|
|
- if (!try_module_get(new->module))
|
|
|
- return -1;
|
|
|
- }
|
|
|
current->binfmt = new;
|
|
|
- if (old)
|
|
|
- module_put(old->module);
|
|
|
- return 0;
|
|
|
+ if (new)
|
|
|
+ __module_get(new->module);
|
|
|
}
|
|
|
|
|
|
EXPORT_SYMBOL(set_binfmt);
|