X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fafs%2FLINUX%2Fosi_pag_module.c;h=ac4f800c2d1ba6d070daeaa72b88dd15237dc3d4;hp=ecfebaa3cff20c9719809773cef6c33de6a55053;hb=b7f4f2023b2b3e1aac46715176940fb50cc75265;hpb=7c76320e8b0bf49954f5b6f231305e36b7bc4edb diff --git a/src/afs/LINUX/osi_pag_module.c b/src/afs/LINUX/osi_pag_module.c index ecfebaa..ac4f800 100644 --- a/src/afs/LINUX/osi_pag_module.c +++ b/src/afs/LINUX/osi_pag_module.c @@ -14,32 +14,24 @@ #include #include "afs/param.h" -RCSID - ("$Header$"); - #include /* early to avoid printf->printk mapping */ #include "afs/sysincludes.h" #include "afsincludes.h" -#include "h/unistd.h" /* For syscall numbers. */ -#include "h/mm.h" +#include /* For syscall numbers. */ +#include #ifdef AFS_AMD64_LINUX20_ENV #include #endif -#ifdef AFS_SPARC64_LINUX20_ENV -#include -#endif #include #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) #include #include #include -#endif static unsigned long nfs_server_addr = 0; -#if defined(module_param) +#if defined(module_param) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) module_param(nfs_server_addr, long, 0); #else MODULE_PARM(nfs_server_addr, "l"); @@ -48,39 +40,48 @@ MODULE_PARM_DESC(nfs_server_addr, "IP Address of NFS Server"); static char *this_cell = 0; #if defined(module_param_array) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) -module_param_array(this_cell, charp, 0); +module_param(this_cell, charp, 0); #else MODULE_PARM(this_cell, "s"); #endif MODULE_PARM_DESC(this_cell, "Local cell name"); -#if defined(AFS_LINUX24_ENV) -DECLARE_MUTEX(afs_global_lock); -struct proc_dir_entry *openafs_procfs; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) +DEFINE_MUTEX(afs_global_lock); #else -struct semaphore afs_global_lock = MUTEX; +DECLARE_MUTEX(afs_global_lock); #endif +struct proc_dir_entry *openafs_procfs; int afs_global_owner = 0; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) +#ifdef HAVE_LINUX_KUID_T +struct user_namespace *afs_ns; +#endif + int __init afspag_init(void) -#else -int -init_module(void) -#endif { +#if !defined(EXPORTED_PROC_ROOT_FS) + char path[64]; +#endif int err; +#ifdef HAVE_LINUX_KUID_T + afs_ns = afs_current_user_ns(); +#endif + osi_Init(); err = osi_syscall_init(); if (err) return err; -#ifdef AFS_LINUX24_ENV +#if defined(EXPORTED_PROC_ROOT_FS) openafs_procfs = proc_mkdir(PROC_FSDIRNAME, proc_root_fs); - osi_ioctl_init(); +#else + sprintf(path, "fs/%s", PROC_FSDIRNAME); + openafs_procfs = proc_mkdir(path, NULL); #endif + osi_ioctl_init(); afspag_Init(htonl(nfs_server_addr)); if (this_cell) @@ -89,39 +90,37 @@ init_module(void) return 0; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) void __exit afspag_cleanup(void) -#else -void -cleanup_module(void) -#endif { +#if !defined(EXPORTED_PROC_ROOT_FS) + char path[64]; +#endif osi_syscall_clean(); osi_linux_free_afs_memory(); -#ifdef AFS_LINUX24_ENV osi_ioctl_clean(); +#if defined(EXPORTED_PROC_ROOT_FS) remove_proc_entry(PROC_FSDIRNAME, proc_root_fs); +#else + sprintf(path, "fs/%s", PROC_FSDIRNAME); + remove_proc_entry(path, NULL); #endif return; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) MODULE_LICENSE("http://www.openafs.org/dl/license10.html"); module_init(afspag_init); module_exit(afspag_cleanup); -#endif -#ifdef AFS_LINUX26_ENV /* Hack alert! * These will never be called in the standalone PAG manager, because * they are only referenced in afs_InitReq, and nothing calls that. * However, we need to define them in order to resolve the reference, * unless we want to move afs_InitReq out of afs_osi_pag.c. */ -int osi_linux_nfs_initreq(struct vrequest *av, struct AFS_UCRED *cr, int *code) +int osi_linux_nfs_initreq(struct vrequest *av, afs_ucred_t *cr, int *code) { *code = EACCES; return 1; @@ -129,10 +128,9 @@ int osi_linux_nfs_initreq(struct vrequest *av, struct AFS_UCRED *cr, int *code) int afs_nfsclient_reqhandler(struct afs_exporter *exporter, - struct AFS_UCRED **cred, - afs_int32 host, afs_int32 *pagparam, + afs_ucred_t **cred, + afs_uint32 host, afs_int32 *pagparam, struct afs_exporter **outexporter) { return EINVAL; } -#endif