Remove support for Solaris pre-8
[openafs.git] / src / afs / VNOPS / afs_vnop_attrs.c
index ce85878..189f5da 100644 (file)
@@ -23,8 +23,6 @@
 #include <afsconfig.h>
 #include "afs/param.h"
 
-RCSID
-    ("$Header$");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -43,10 +41,13 @@ extern struct vfs *afs_globalVFS;
 
 /* copy out attributes from cache entry */
 int
-afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
+afs_CopyOutAttrs(struct vcache *avc, struct vattr *attrs)
 {
-    register struct volume *tvp;
-    register struct cell *tcell;
+    struct volume *tvp;
+    struct cell *tcell;
+#if defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV)
+    struct vnode *vp = AFSTOV(avc);
+#endif
     int fakedir = 0;
 
     AFS_STATCNT(afs_CopyOutAttrs);
@@ -67,7 +68,6 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
     }
 #if defined(AFS_DARWIN_ENV)
     {
-       extern u_int32_t afs_darwin_realmodes;
        if (!afs_darwin_realmodes) {
            /* Mac OS X uses the mode bits to determine whether a file or
             * directory is accessible, and believes them, even though under
@@ -90,15 +90,13 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
 #endif /* AFS_DARWIN_ENV */
     attrs->va_uid = fakedir ? 0 : avc->f.m.Owner;
     attrs->va_gid = fakedir ? 0 : avc->f.m.Group;      /* yeah! */
-#if defined(AFS_SUN56_ENV)
+#if defined(AFS_SUN5_ENV)
     attrs->va_fsid = avc->v.v_vfsp->vfs_fsid.val[0];
-#elif defined(AFS_OSF_ENV)
-    attrs->va_fsid = avc->v.v_mount->m_stat.f_fsid.val[0];
 #elif defined(AFS_DARWIN80_ENV)
     VATTR_RETURN(attrs, va_fsid, vfs_statfs(vnode_mount(AFSTOV(avc)))->f_fsid.val[0]);
-#elif defined(AFS_DARWIN70_ENV)
+#elif defined(AFS_DARWIN_ENV)
     attrs->va_fsid = avc->v->v_mount->mnt_stat.f_fsid.val[0];
-#else /* ! AFS_DARWIN70_ENV */
+#else /* ! AFS_DARWIN_ENV */
     attrs->va_fsid = 1;
 #endif 
     if (avc->mvstat == 2) {
@@ -120,6 +118,9 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
     attrs->va_nodeid &= 0x7fffffff;    /* Saber C hates negative inode #s! */
     attrs->va_nlink = fakedir ? 100 : avc->f.m.LinkCount;
     attrs->va_size = fakedir ? 4096 : avc->f.m.Length;
+#if defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV)
+        vnode_pager_setsize(vp, (u_long) attrs->va_size);
+#endif
     attrs->va_atime.tv_sec = attrs->va_mtime.tv_sec = attrs->va_ctime.tv_sec =
        fakedir ? 0 : (int)avc->f.m.Date;
     /* set microseconds to be dataversion # so that we approximate NFS-style
@@ -136,7 +137,7 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
     attrs->va_atime.tv_nsec = attrs->va_mtime.tv_nsec =
        attrs->va_ctime.tv_nsec = 0;
     attrs->va_gen = hgetlo(avc->f.m.DataVersion);
-#elif defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_AIX41_ENV) || defined(AFS_OBSD_ENV)
+#elif defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_AIX41_ENV) || defined(AFS_OBSD_ENV) || defined(AFS_NBSD_ENV)
     attrs->va_atime.tv_nsec = attrs->va_mtime.tv_nsec =
        attrs->va_ctime.tv_nsec =
        (hgetlo(avc->f.m.DataVersion) & 0x7ffff) * 1000;
@@ -144,7 +145,7 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
     attrs->va_atime.tv_usec = attrs->va_mtime.tv_usec =
        attrs->va_ctime.tv_usec = (hgetlo(avc->f.m.DataVersion) & 0x7ffff);
 #endif
-#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_OSF_ENV)
+#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
     attrs->va_flags = 0;
 #endif
 #if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV)
@@ -162,7 +163,7 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
      * Below return 0 (and not 1) blocks if the file is zero length. This conforms
      * better with the other filesystems that do return 0.      
      */
-#if defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
     attrs->va_bytes = (attrs->va_size ? (attrs->va_size + 1023) : 1024);
 #ifdef va_bytes_rsv
     attrs->va_bytes_rsv = -1;
@@ -184,10 +185,10 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
 #if    defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
 int
 afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, int flags,
-           struct AFS_UCRED *acred)
+           afs_ucred_t *acred)
 #else
 int
-afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, struct AFS_UCRED *acred)
+afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, afs_ucred_t *acred)
 #endif
 {
     afs_int32 code;
@@ -273,7 +274,7 @@ afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, struct AFS_UCRED *acred)
                }
            }
            if ((au = afs_FindUser(treq.uid, -1, READ_LOCK))) {
-               register struct afs_exporter *exporter = au->exporter;
+               struct afs_exporter *exporter = au->exporter;
 
                if (exporter && !(afs_nfsexporter->exp_states & EXP_UNIXMODE)) {
                    unsigned int ubits;
@@ -298,8 +299,10 @@ afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, struct AFS_UCRED *acred)
                    }
 #else
                    if (
-#ifdef AFS_DARWIN_ENV              
+#if defined(AFS_DARWIN_ENV)
                        vnode_isvroot(AFSTOV(avc))
+#elif defined(AFS_NBSD50_ENV)
+                       AFSTOV(avc)->v_vflag & VV_ROOT
 #else
                        AFSTOV(avc)->v_flag & VROOT
 #endif
@@ -341,10 +344,10 @@ afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, struct AFS_UCRED *acred)
 
 /* convert a Unix request into a status store request */
 int
-afs_VAttrToAS(register struct vcache *avc, register struct vattr *av,
-             register struct AFSStoreStatus *as)
+afs_VAttrToAS(struct vcache *avc, struct vattr *av,
+             struct AFSStoreStatus *as)
 {
-    register int mask;
+    int mask;
     mask = 0;
     AFS_STATCNT(afs_VAttrToAS);
 #if     defined(AFS_DARWIN80_ENV)
@@ -439,17 +442,20 @@ afs_VAttrToAS(register struct vcache *avc, register struct vattr *av,
  */
 #if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
 int
-afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs, int flags,
-           struct AFS_UCRED *acred)
+afs_setattr(OSI_VC_DECL(avc), struct vattr *attrs, int flags,
+           afs_ucred_t *acred)
 #else
 int
-afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
-           struct AFS_UCRED *acred)
+afs_setattr(OSI_VC_DECL(avc), struct vattr *attrs,
+           afs_ucred_t *acred)
 #endif
 {
     struct vrequest treq;
     struct AFSStoreStatus astat;
-    register afs_int32 code;
+    afs_int32 code;
+#if defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV)
+    struct vnode *vp = AFSTOV(avc);
+#endif
     struct afs_fakestat_state fakestate;
     OSI_VC_CONVERT(avc);
 
@@ -496,7 +502,7 @@ afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
     if (attrs->va_mask & ATTR_SIZE) {
 #elif  defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
     if (attrs->va_mask & AT_SIZE) {
-#elif  defined(AFS_OSF_ENV) || defined(AFS_XBSD_ENV)
+#elif  defined(AFS_XBSD_ENV)
     if (attrs->va_size != VNOVAL) {
 #elif  defined(AFS_AIX41_ENV)
     if (attrs->va_size != -1) {
@@ -534,7 +540,7 @@ afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
     if (attrs->va_mask & ATTR_SIZE) {
 #elif  defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)
     if (attrs->va_mask & AT_SIZE) {
-#elif  defined(AFS_OSF_ENV) || defined(AFS_XBSD_ENV)
+#elif  defined(AFS_XBSD_ENV)
     if (attrs->va_size != VNOVAL) {
 #elif  defined(AFS_AIX41_ENV)
     if (attrs->va_size != -1) {
@@ -559,6 +565,9 @@ afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
        if (code == 0)
            i_size_write(AFSTOV(avc), tsize);
 #endif
+#if defined(AFS_FBSD_ENV) || defined(AFS_DFBSD_ENV)
+        vnode_pager_setsize(vp, (u_long) tsize);
+#endif
        /* if date not explicitly set by this call, set it ourselves, since we
         * changed the data */
        if (!(astat.Mask & AFS_SETMODTIME)) {
@@ -601,15 +610,11 @@ afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
                osi_dnlc_purgedp(avc);
            /* error?  erase any changes we made to vcache entry */
         }
-
-#if defined(AFS_DISCON_ENV)
     } else {
-
        ObtainSharedLock(&avc->lock, 712);
        /* Write changes locally. */
        code = afs_WriteVCacheDiscon(avc, &astat, attrs);
        ReleaseSharedLock(&avc->lock);
-#endif
     }          /* if (!AFS_IS_DISCONNECTED) */
 
 #if    defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV)