From 7c76320e8b0bf49954f5b6f231305e36b7bc4edb Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Fri, 11 Aug 2006 22:38:41 +0000 Subject: [PATCH] linux-updates-20060811 fix for current fc kernels, and clean up linux nfs translator --- acinclude.m4 | 1 + src/afs/LINUX/osi_file.c | 2 ++ src/afs/LINUX/osi_machdep.h | 2 ++ src/afs/LINUX/osi_nfssrv.c | 4 ++++ src/afs/LINUX/osi_pag_module.c | 8 ++++++++ src/afs/LINUX/osi_vfsops.c | 2 ++ src/afs/afs_prototypes.h | 2 ++ src/cf/linux-test4.m4 | 11 +++++++++++ 8 files changed, 32 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 5ecb94f..7acbf69 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -571,6 +571,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM + LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS LINUX_FS_STRUCT_INODE_HAS_I_DEVICES diff --git a/src/afs/LINUX/osi_file.c b/src/afs/LINUX/osi_file.c index f096416..ecf1934 100644 --- a/src/afs/LINUX/osi_file.c +++ b/src/afs/LINUX/osi_file.c @@ -138,7 +138,9 @@ afs_osi_Stat(register struct osi_file *afile, register struct osi_stat *astat) AFS_STATCNT(osi_Stat); MObtainWriteLock(&afs_xosi, 320); astat->size = OSIFILE_INODE(afile)->i_size; +#ifdef STRUCT_INODE_HAS_I_BLKSIZE astat->blksize = OSIFILE_INODE(afile)->i_blksize; +#endif #if defined(AFS_LINUX26_ENV) astat->mtime = OSIFILE_INODE(afile)->i_mtime.tv_sec; astat->atime = OSIFILE_INODE(afile)->i_atime.tv_sec; diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h index 3656bd4..8faca60 100644 --- a/src/afs/LINUX/osi_machdep.h +++ b/src/afs/LINUX/osi_machdep.h @@ -26,6 +26,8 @@ #define getpid() current->pid #ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT #define getppid() current->real_parent->pid +#elif defined(STRUCT_TASK_STRUCT_HAS_PARENT) +#define getppid() current->parent->pid #else #define getppid() current->p_opptr->pid #endif diff --git a/src/afs/LINUX/osi_nfssrv.c b/src/afs/LINUX/osi_nfssrv.c index 57be4bb..9fec38a 100644 --- a/src/afs/LINUX/osi_nfssrv.c +++ b/src/afs/LINUX/osi_nfssrv.c @@ -26,7 +26,11 @@ RCSID #include static unsigned long authtab_addr = 0; +#if defined(module_param) +module_param(authtab_addr, long, 0); +#else MODULE_PARM(authtab_addr, "l"); +#endif MODULE_PARM_DESC(authtab_addr, "Address of the authtab array."); extern struct auth_ops *authtab[] __attribute__((weak)); diff --git a/src/afs/LINUX/osi_pag_module.c b/src/afs/LINUX/osi_pag_module.c index 7c05777..ecfebaa 100644 --- a/src/afs/LINUX/osi_pag_module.c +++ b/src/afs/LINUX/osi_pag_module.c @@ -39,11 +39,19 @@ RCSID #endif static unsigned long nfs_server_addr = 0; +#if defined(module_param) +module_param(nfs_server_addr, long, 0); +#else MODULE_PARM(nfs_server_addr, "l"); +#endif 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); +#else MODULE_PARM(this_cell, "s"); +#endif MODULE_PARM_DESC(this_cell, "Local cell name"); #if defined(AFS_LINUX24_ENV) diff --git a/src/afs/LINUX/osi_vfsops.c b/src/afs/LINUX/osi_vfsops.c index 44ec210..762c309 100644 --- a/src/afs/LINUX/osi_vfsops.c +++ b/src/afs/LINUX/osi_vfsops.c @@ -512,7 +512,9 @@ vattr2inode(struct inode *ip, struct vattr *vp) ip->i_ino = vp->va_nodeid; ip->i_nlink = vp->va_nlink; ip->i_blocks = vp->va_blocks; +#ifdef STRUCT_INODE_HAS_I_BLKSIZE ip->i_blksize = vp->va_blocksize; +#endif ip->i_rdev = vp->va_rdev; ip->i_mode = vp->va_mode; ip->i_uid = vp->va_uid; diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h index c167261..97d3fae 100644 --- a/src/afs/afs_prototypes.h +++ b/src/afs/afs_prototypes.h @@ -769,6 +769,8 @@ extern int osi_dnlc_purgevol(struct VenusFid *fidp); extern int osi_dnlc_init(void); extern int osi_dnlc_shutdown(void); +/* afs_pag_cred.c */ +extern void afspag_SetPrimaryCell(char *acell); /* afs_stat.c */ extern struct afs_CMStats afs_cmstats; diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 index 7391891..92d435a 100644 --- a/src/cf/linux-test4.m4 +++ b/src/cf/linux-test4.m4 @@ -142,6 +142,17 @@ AC_DEFUN([LINUX_EXPORTS_SYS_WAIT4], [ AC_MSG_RESULT($ac_cv_linux_exports_sys_wait4)]) +AC_DEFUN([LINUX_FS_STRUCT_INODE_HAS_I_BLKSIZE], [ + AC_MSG_CHECKING([for i_blksize in struct inode]) + AC_CACHE_VAL([ac_cv_linux_fs_struct_inode_has_i_blksize], [ + AC_TRY_KBUILD( +[#include ], +[struct inode _inode; +printk("%d\n", _inode.i_blksize);], + ac_cv_linux_fs_struct_inode_has_i_blksize=yes, + ac_cv_linux_fs_struct_inode_has_i_blksize=no)]) + AC_MSG_RESULT($ac_cv_linux_fs_struct_inode_has_i_blksize)]) + AC_DEFUN([LINUX_FS_STRUCT_INODE_HAS_I_CDEV], [ AC_MSG_CHECKING([for i_cdev in struct inode]) AC_CACHE_VAL([ac_cv_linux_fs_struct_inode_has_i_cdev], [ -- 1.9.4