]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
aix-5-updates-20040819
authorHartmut Reuter <reuter@rzg.mpg.de>
Thu, 19 Aug 2004 06:42:20 +0000 (06:42 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 19 Aug 2004 06:42:20 +0000 (06:42 +0000)
updates to aix 5 code since last patches

src/afs/AIX/osi_config.c
src/afs/AIX/osi_inode.c
src/afs/AIX/osi_vfsops.c
src/afs/afs_call.c
src/afs/afs_daemons.c
src/afs/afs_vcache.c
src/rx/AIX/rx_knet.c

index c1ebc3fcaf0e8ce83181e15cb305734f57e24525..edd80051cd6e4aec1fc7fcec948dd3a355521e1b 100644 (file)
@@ -147,7 +147,14 @@ afs_config(cmd, uiop)
         */
        if (err == ENOENT)
            err = 0;
-       else if (!err) {
+#ifndef AFS_AIX51_ENV
+       else
+#endif
+       if (!err) {
+#ifdef AFS_AIX51_ENV
+           if (err = unpin(&afs_callout_lock))
+               err = 0;
+#endif
            if (err = unpincode(afs_config))
                err = 0;
 
index 921802d2868c328e7d07c4195f0ac54121792c7c..39bcdce69139efae982c12467a22f1c660f293ac 100644 (file)
@@ -236,13 +236,13 @@ igetinode(dev, vfsp, inode, vpp, perror)
        ip = 0;
        goto out;
     }
-    IREAD_UNLOCK(ip);
     if (vpp) {
        if (nvfsp)
            *vpp = ip->i_gnode.gn_vnode;
        else
            setuerror(iptovp(vfsp, ip, vpp));
     }
+    IREAD_UNLOCK(ip);
   out:
     return ip;
 }
index 10a7edfe0d2a92615f8e4ab95dccae010659902e..ad058f7519c8e3e4086f191da99a278a6563089b 100644 (file)
@@ -34,6 +34,7 @@ extern struct afs_exporter *afs_nfsexporter;
 struct vfs *afs_globalVFS = 0;
 struct vcache *afs_globalVp = 0;
 
+extern int afs_cold_shutdown;
 
 static int afs_root_nolock(struct vfs *afsp, struct vnode **avpp);
 
@@ -81,6 +82,10 @@ afs_mount(afsp, path, data)
     afsp->vfs_mntdover->v_mvfsp = afsp;
     afsp->vfs_mdata->vmt_flags |= MNT_REMOTE;
 
+#ifdef AFS_AIX51_ENV
+    afsp->vfs_count = 1;
+    afsp->vfs_mntd->v_count = 1;
+#endif
 #ifdef AFS_AIX_IAUTH_ENV
     if (afs_iauth_register() < 0)
        afs_warn("Can't register AFS iauth interface.\n");
@@ -97,6 +102,7 @@ afs_unmount(struct vfs *afsp, int flag)
     AFS_STATCNT(afs_unmount);
 
     afs_globalVFS = 0;
+    afs_cold_shutdown = 1;
     afs_shutdown();
 
     AFS_VFSUNLOCK();
index 6b1eeeb1c959fb13824396398e2b29597f71f1d8..c801c04d23a7d53306b6f99d52267e1dc37ad27f 100644 (file)
@@ -1528,6 +1528,9 @@ afs_shutdown(void)
 
     afs_termState = AFSOP_STOP_RXCALLBACK;
     rx_WakeupServerProcs();
+#ifdef AFS_AIX51_ENV
+    shutdown_rxkernel();
+#endif
     /* shutdown_rxkernel(); */
     while (afs_termState == AFSOP_STOP_RXCALLBACK)
        afs_osi_Sleep(&afs_termState);
@@ -1598,7 +1601,11 @@ afs_shutdown(void)
     shutdown_rx();
     afs_shutdown_BKG();
     shutdown_bufferpackage();
+#endif
+#ifdef AFS_AIX51_ENV
     shutdown_daemons();
+#endif
+#ifdef notdef
     shutdown_cache();
     shutdown_osi();
     shutdown_osinet();
index 658bd4a15476819222368d8ae28ce77d9dd03999..eebb5e824351596605cb36f05a0dd0e51488f3e2 100644 (file)
@@ -1338,7 +1338,7 @@ shutdown_daemons(void)
 #ifdef AFS_AIX41_ENV
        lock_free(&afs_asyncbuf_lock);
        unpin(&afs_asyncbuf, sizeof(struct buf *));
-       pin(&afs_asyncbuf_cv, sizeof(afs_int32));
+       unpin(&afs_asyncbuf_cv, sizeof(afs_int32));
 #else /* AFS_AIX41_ENV */
        afs_busyq = NULL;
        afs_biodcnt = 0;
index 31f5b719efef20ec162c694ddb8e50f171f1cee4..87c467f16b8efeaa70fbdd253cbe603a297909c6 100644 (file)
@@ -3010,12 +3010,12 @@ shutdown_vcache(void)
     }
     afs_cbrSpace = 0;
 
-#if    !defined(AFS_OSF_ENV)
-    afs_osi_Free(Initial_freeVCList, afs_cacheStats * sizeof(struct vcache));
-#endif
 #ifdef  KERNEL_HAVE_PIN
     unpin(Initial_freeVCList, afs_cacheStats * sizeof(struct vcache));
 #endif
+#if    !defined(AFS_OSF_ENV)
+    afs_osi_Free(Initial_freeVCList, afs_cacheStats * sizeof(struct vcache));
+#endif
 #if    !defined(AFS_OSF_ENV)
     freeVCList = Initial_freeVCList = 0;
 #endif
index e4e30f7052e692ff690f62f6a93e878326a2c974..6ccd1e30c91fe3d263f3f1ff2c64c41d43ef6df5 100644 (file)
@@ -322,6 +322,7 @@ shutdown_rxkernel(void)
                rxk_portRocks[i] = NULL;
            }
        }
+       del_input_type(0xdead);
     }
 }