X-Git-Url: http://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fafs%2FSOLARIS%2Fosi_vnodeops.c;h=d2ae6948d842a255a07f9c06b11f1d56565696f6;hp=cfd112419f042209723f3caa42dc4719f1239db6;hb=e4c2810f;hpb=a4e3c3be697bb99ee4846c99550cd2b52929cdca diff --git a/src/afs/SOLARIS/osi_vnodeops.c b/src/afs/SOLARIS/osi_vnodeops.c index cfd1124..d2ae694 100644 --- a/src/afs/SOLARIS/osi_vnodeops.c +++ b/src/afs/SOLARIS/osi_vnodeops.c @@ -156,11 +156,7 @@ afs_getpage(struct vnode *vp, offset_t off, u_int len, u_int *protp, if (len <= PAGESIZE) code = - afs_GetOnePage(vp, -#if !defined(AFS_SUN56_ENV) - (u_int) -#endif - off, len, protp, pl, plsz, seg, addr, rw, acred); + afs_GetOnePage(vp, off, len, protp, pl, plsz, seg, addr, rw, acred); else { struct vcache *vcp = VTOAFS(vp); ObtainWriteLock(&vcp->vlock, 548); @@ -168,11 +164,7 @@ afs_getpage(struct vnode *vp, offset_t off, u_int len, u_int *protp, ReleaseWriteLock(&vcp->vlock); afs_BozonLock(&vcp->pvnLock, vcp); code = - pvn_getpages(afs_GetOnePage, vp, -#if !defined(AFS_SUN56_ENV) - (u_int) -#endif - off, len, protp, pl, plsz, seg, addr, rw, acred); + pvn_getpages(afs_GetOnePage, vp, off, len, protp, pl, plsz, seg, addr, rw, acred); afs_BozonUnlock(&vcp->pvnLock, vcp); ObtainWriteLock(&vcp->vlock, 549); vcp->multiPage--; @@ -184,15 +176,9 @@ afs_getpage(struct vnode *vp, offset_t off, u_int len, u_int *protp, /* Return all the pages from [off..off+len) in file */ int -#if defined(AFS_SUN56_ENV) afs_GetOnePage(struct vnode *vp, u_offset_t off, u_int alen, u_int *protp, struct page *pl[], u_int plsz, struct seg *seg, caddr_t addr, enum seg_rw rw, afs_ucred_t *acred) -#else -afs_GetOnePage(struct vnode *vp, u_int off, u_int alen, u_int *protp, - struct page *pl[], u_int plsz, struct seg *seg, caddr_t addr, - enum seg_rw rw, afs_ucred_t *acred) -#endif { struct page *page; afs_int32 code = 0; @@ -362,24 +348,14 @@ afs_GetOnePage(struct vnode *vp, u_int off, u_int alen, u_int *protp, /* if we make it here, we can't find the page in memory. Do a real disk read * from the cache to get the data */ Code |= 0x200; /* XXX */ -#if defined(AFS_SUN54_ENV) /* use PG_EXCL because we know the page does not exist already. If it * actually does exist, we have somehow raced between lookup and create. * As of 4/98, that shouldn't be possible, but we'll be defensive here * in case someone tries to relax all the serialization of read and write * operations with harmless things like stat. */ -#if defined(AFS_SUN58_ENV) page = page_create_va(vp, toffset, PAGESIZE, PG_WAIT | PG_EXCL, seg, addr); -#else - page = - page_create_va(vp, toffset, PAGESIZE, PG_WAIT | PG_EXCL, - seg->s_as, addr); -#endif -#else - page = page_create(vp, toffset, PAGESIZE, PG_WAIT); -#endif if (!page) { continue; } @@ -395,11 +371,7 @@ afs_GetOnePage(struct vnode *vp, u_int off, u_int alen, u_int *protp, buf = pageio_setup(page, PAGESIZE, vp, B_READ); /* allocate a buf structure */ buf->b_edev = 0; buf->b_dev = 0; -#if defined(AFS_SUN56_ENV) buf->b_lblkno = lbtodb(toffset); -#else - buf->b_blkno = btodb(toffset); -#endif bp_mapin(buf); /* map it in to our address space */ AFS_GLOCK(); @@ -422,12 +394,7 @@ afs_GetOnePage(struct vnode *vp, u_int off, u_int alen, u_int *protp, nextpage: /* put page in array and continue */ /* The p_selock must be downgraded to a shared lock after the page is read */ -#if defined(AFS_SUN56_ENV) - if ((rw != S_CREATE) && !(PAGE_SHARED(page))) -#else - if ((rw != S_CREATE) && !(se_shared_assert(&page->p_selock))) -#endif - { + if ((rw != S_CREATE) && !(PAGE_SHARED(page))) { page_downgrade(page); } pl[slot++] = page; @@ -485,18 +452,10 @@ afs_putpage(struct vnode *vp, offset_t off, u_int len, int flags, struct vcache *avc; struct page *pages; afs_int32 code = 0; -#if defined(AFS_SUN58_ENV) size_t tlen; -#else - afs_int32 tlen; -#endif afs_offs_t endPos; afs_int32 NPages = 0; -#if defined(AFS_SUN56_ENV) u_offset_t toff = off; -#else - int toff = (int)off; -#endif int didWriteLock; AFS_STATCNT(afs_putpage); @@ -554,11 +513,7 @@ afs_putpage(struct vnode *vp, offset_t off, u_int len, int flags, } AFS_GUNLOCK(); -#if defined(AFS_SUN56_ENV) code = pvn_vplist_dirty(vp, toff, afs_putapage, flags, cred); -#else - code = pvn_vplist_dirty(vp, (u_int) off, afs_putapage, flags, cred); -#endif AFS_GLOCK(); } @@ -583,16 +538,8 @@ afs_putpage(struct vnode *vp, offset_t off, u_int len, int flags, int -#if defined(AFS_SUN58_ENV) afs_putapage(struct vnode *vp, struct page *pages, u_offset_t * offp, size_t * lenp, int flags, afs_ucred_t *credp) -#elif defined(AFS_SUN56_ENV) -afs_putapage(struct vnode *vp, struct page *pages, u_offset_t * offp, - u_int * lenp, int flags, afs_ucred_t *credp) -#else -afs_putapage(struct vnode *vp, struct page *pages, u_int * offp, - u_int * lenp, int flags, afs_ucred_t *credp) -#endif { struct buf *tbuf; struct vcache *avc = VTOAFS(vp); @@ -621,11 +568,7 @@ afs_putapage(struct vnode *vp, struct page *pages, u_int * offp, return (ENOMEM); tbuf->b_dev = 0; -#if defined(AFS_SUN56_ENV) tbuf->b_lblkno = lbtodb(pages->p_offset); -#else - tbuf->b_blkno = btodb(pages->p_offset); -#endif bp_mapin(tbuf); AFS_GLOCK(); afs_Trace4(afs_iclSetp, CM_TRACE_PAGEOUTONE, ICL_TYPE_LONG, avc, @@ -718,11 +661,7 @@ afs_nfsrdwr(struct vcache *avc, struct uio *auio, enum uio_rw arw, /* adjust parameters when appending files */ if ((ioflag & IO_APPEND) && arw == UIO_WRITE) { -#if defined(AFS_SUN56_ENV) auio->uio_loffset = avc->f.m.Length; /* write at EOF position */ -#else - auio->uio_offset = avc->f.m.Length; /* write at EOF position */ -#endif } if (auio->afsio_offset < 0 || (auio->afsio_offset + auio->uio_resid) < 0) { ReleaseWriteLock(&avc->lock); @@ -741,7 +680,6 @@ afs_nfsrdwr(struct vcache *avc, struct uio *auio, enum uio_rw arw, didFakeOpen = 0; /* keep track of open so we can do close */ if (arw == UIO_WRITE) { /* do ulimit processing; shrink resid or fail */ -#if defined(AFS_SUN56_ENV) if (auio->uio_loffset + auio->afsio_resid > auio->uio_llimit) { if (auio->uio_loffset >= auio->uio_llimit) { ReleaseWriteLock(&avc->lock); @@ -757,25 +695,6 @@ afs_nfsrdwr(struct vcache *avc, struct uio *auio, enum uio_rw arw, extraResid -= auio->uio_resid; } } -#else -#ifdef AFS_SUN52_ENV - if (auio->afsio_offset + auio->afsio_resid > auio->uio_limit) { - if (auio->afsio_offset >= auio->uio_limit) { - ReleaseWriteLock(&avc->lock); - afs_BozonUnlock(&avc->pvnLock, avc); - return EFBIG; - } else { - /* track # of bytes we should write, but won't because of - * ulimit; we must add this into the final resid value - * so caller knows we punted some data. - */ - extraResid = auio->uio_resid; - auio->uio_resid = auio->uio_limit - auio->afsio_offset; - extraResid -= auio->uio_resid; - } - } -#endif -#endif /* SUN56 */ mode = S_WRITE; /* segment map-in mode */ afs_FakeOpen(avc); /* do this for writes, so data gets put back * when we want it to be put back */ @@ -898,13 +817,8 @@ afs_nfsrdwr(struct vcache *avc, struct uio *auio, enum uio_rw arw, } ReleaseWriteLock(&avc->lock); /* uiomove may page fault */ AFS_GUNLOCK(); -#if defined(AFS_SUN56_ENV) data = segmap_getmap(segkmap, AFSTOV(avc), (u_offset_t) pageBase); raddr = (caddr_t) (((uintptr_t) data + pageOffset) & PAGEMASK); -#else - data = segmap_getmap(segkmap, AFSTOV(avc), pageBase); - raddr = (caddr_t) (((u_int) data + pageOffset) & PAGEMASK); -#endif rsize = (((u_int) data + pageOffset + tsize + PAGEOFFSET) & PAGEMASK) - (u_int) raddr; @@ -988,24 +902,16 @@ afs_nfsrdwr(struct vcache *avc, struct uio *auio, enum uio_rw arw, ReleaseWriteLock(&avc->lock); afs_BozonUnlock(&avc->pvnLock, avc); if (!code) { -#ifdef AFS_SUN53_ENV if ((ioflag & FSYNC) && (arw == UIO_WRITE) && !AFS_NFSXLATORREQ(acred)) code = afs_fsync(avc, 0, acred); -#else - if ((ioflag & IO_SYNC) && (arw == UIO_WRITE) - && !AFS_NFSXLATORREQ(acred)) - code = afs_fsync(avc, acred); -#endif } -#ifdef AFS_SUN52_ENV /* * If things worked, add in as remaining in request any bytes * we didn't write due to file size ulimit. */ if (code == 0 && extraResid > 0) auio->uio_resid += extraResid; -#endif return afs_CheckCode(code, &treq, 46); } @@ -1058,13 +964,7 @@ afs_map(struct vnode *vp, offset_t off, struct as *as, caddr_t *addr, u_int len, AFS_GUNLOCK(); as_rangelock(as); if ((flags & MAP_FIXED) == 0) { -#if defined(AFS_SUN57_ENV) map_addr(addr, len, off, 1, flags); -#elif defined(AFS_SUN56_ENV) - map_addr(addr, len, off, 1); -#else - map_addr(addr, len, (off_t) off, 1); -#endif if (*addr == NULL) { as_rangeunlock(as); code = ENOMEM; @@ -1185,11 +1085,8 @@ int #ifdef AFS_SUN59_ENV afs_frlock(struct vnode *vnp, int cmd, struct flock64 *ap, int flag, offset_t off, struct flk_callback *flkcb, afs_ucred_t *credp) -#elif defined(AFS_SUN56_ENV) -afs_frlock(struct vnode *vnp, int cmd, struct flock64 *ap, int flag, - offset_t off, afs_ucred_t *credp) #else -afs_frlock(struct vnode *vnp, int cmd, struct flock *ap, int flag, +afs_frlock(struct vnode *vnp, int cmd, struct flock64 *ap, int flag, offset_t off, afs_ucred_t *credp) #endif { @@ -1204,20 +1101,11 @@ afs_frlock(struct vnode *vnp, int cmd, struct flock *ap, int flag, #endif if ((cmd == F_GETLK) || (cmd == F_O_GETLK) || (cmd == F_SETLK) || (cmd == F_SETLKW)) { -#ifdef AFS_SUN53_ENV ap->l_pid = ttoproc(curthread)->p_pid; ap->l_sysid = 0; -#else - ap->l_pid = ttoproc(curthread)->p_epid; - ap->l_sysid = ttoproc(curthread)->p_sysid; -#endif AFS_GUNLOCK(); -#ifdef AFS_SUN56_ENV code = convoff(vnp, ap, 0, off); -#else - code = convoff(vnp, ap, 0, (off_t) off); -#endif if (code) return code; AFS_GLOCK(); @@ -1230,23 +1118,14 @@ afs_frlock(struct vnode *vnp, int cmd, struct flock *ap, int flag, int -#if defined(AFS_SUN56_ENV) afs_space(struct vnode *vnp, int cmd, struct flock64 *ap, int flag, offset_t off, afs_ucred_t *credp) -#else -afs_space(struct vnode *vnp, int cmd, struct flock *ap, int flag, - offset_t off, afs_ucred_t *credp) -#endif { afs_int32 code = EINVAL; struct vattr vattr; if ((cmd == F_FREESP) -#ifdef AFS_SUN56_ENV && ((code = convoff(vnp, ap, 0, off)) == 0)) { -#else - && ((code = convoff(vnp, ap, 0, (off_t) off)) == 0)) { -#endif AFS_GLOCK(); if (!ap->l_len) { vattr.va_mask = AT_SIZE; @@ -1303,7 +1182,6 @@ afs_dumpctl(struct vnode *vp, int i) return EINVAL; } -#ifdef AFS_SUN54_ENV #ifdef AFS_SUN511_ENV extern void afs_dispose(struct vnode *vp, struct page *p, int fl, int dn, struct cred *cr, struct caller_context_t *ct) @@ -1342,7 +1220,6 @@ afs_getsecattr(struct vnode *vp, vsecattr_t *vsecattr, int flag, struct cred *cr return fs_fab_acl(vp, vsecattr, flag, creds); } #endif -#endif #ifdef AFS_GLOBAL_SUNLOCK extern int gafs_open(struct vcache **avcp, afs_int32 aflags, @@ -1377,12 +1254,7 @@ extern int gafs_rmdir(struct vcache *adp, char *aname, extern int gafs_mkdir(struct vcache *adp, char *aname, struct vattr *attrs, struct vcache **avcp, afs_ucred_t *acred); -extern int -#ifdef AFS_SUN53_ENV -gafs_fsync(struct vcache *avc, int flag, afs_ucred_t *acred); -#else -gafs_fsync(struct vcache *avc, afs_ucred_t *acred); -#endif +extern int gafs_fsync(struct vcache *avc, int flag, afs_ucred_t *acred); extern int gafs_readlink(struct vcache *avc, struct uio *auio, afs_ucred_t *acred); extern int gafs_readdir(struct vcache *avc, struct uio *auio, @@ -1540,14 +1412,10 @@ struct vnodeops Afs_vnodeops = { afs_pathconf, afs_pageio, afs_dumpctl, -#ifdef AFS_SUN54_ENV afs_dispose, afs_setsecattr, afs_getsecattr, -#endif -#if defined(AFS_SUN56_ENV) fs_shrlock, -#endif }; struct vnodeops *afs_ops = &Afs_vnodeops; #endif @@ -1760,20 +1628,12 @@ gafs_readlink(struct vcache *avc, struct uio *auio, afs_ucred_t *acred) } int -#ifdef AFS_SUN53_ENV gafs_fsync(struct vcache *avc, int flag, afs_ucred_t *acred) -#else -gafs_fsync(struct vcache *avc, afs_ucred_t *acred) -#endif { int code; AFS_GLOCK(); -#ifdef AFS_SUN53_ENV code = afs_fsync(avc, flag, acred); -#else - code = afs_fsync(avc, acred); -#endif AFS_GUNLOCK(); return (code); } @@ -1816,13 +1676,11 @@ afs_inactive(struct vcache *avc, afs_ucred_t *acred) afs_InactiveVCache(avc, acred); -#ifdef AFS_SUN58_ENV AFS_GUNLOCK(); /* VFS_RELE must be called outside of GLOCK, since it can potentially * call afs_freevfs, which acquires GLOCK */ VFS_RELE(afs_globalVFS); AFS_GLOCK(); -#endif return 0; }