patch-2.4.19 linux-2.4.19/fs/filesystems.c
Next file: linux-2.4.19/fs/freevxfs/vxfs_kcompat.h
Previous file: linux-2.4.19/fs/file.c
Back to the patch index
Back to the overall index
- Lines: 48
- Date:
Fri Aug 2 17:39:45 2002
- Orig file:
linux-2.4.18/fs/filesystems.c
- Orig date:
Tue Apr 17 23:23:12 2001
diff -urN linux-2.4.18/fs/filesystems.c linux-2.4.19/fs/filesystems.c
@@ -3,7 +3,7 @@
*
* Copyright (C) 1991, 1992 Linus Torvalds
*
- * table of configured filesystems
+ * nfsservctl system-call when nfsd is not compiled in.
*/
#include <linux/config.h>
@@ -13,28 +13,28 @@
#include <linux/kmod.h>
#include <linux/nfsd/interface.h>
-#if defined(CONFIG_NFSD_MODULE)
-struct nfsd_linkage *nfsd_linkage = NULL;
+#if ! defined(CONFIG_NFSD)
+struct nfsd_linkage *nfsd_linkage;
long
asmlinkage sys_nfsservctl(int cmd, void *argp, void *resp)
{
int ret = -ENOSYS;
+#if defined(CONFIG_MODULES)
lock_kernel();
if (nfsd_linkage ||
- (request_module ("nfsd") == 0 && nfsd_linkage))
+ (request_module ("nfsd") == 0 && nfsd_linkage)) {
+ __MOD_INC_USE_COUNT(nfsd_linkage->owner);
+ unlock_kernel();
ret = nfsd_linkage->do_nfsservctl(cmd, argp, resp);
-
- unlock_kernel();
+ __MOD_DEC_USE_COUNT(nfsd_linkage->owner);
+ } else
+ unlock_kernel();
+#endif
return ret;
}
EXPORT_SYMBOL(nfsd_linkage);
-#elif ! defined (CONFIG_NFSD)
-asmlinkage int sys_nfsservctl(int cmd, void *argp, void *resp)
-{
- return -ENOSYS;
-}
#endif /* CONFIG_NFSD */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)