int afs_osicred_initialized = 0;
afs_ucred_t afs_osi_cred;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct vfs *afs_cacheVfsp;
afs_int32 code;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
code = VNOP_GETATTR(afile->vnode, &tvattr, &afs_osi_cred);
AFS_GLOCK();
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
code = afs_osi_Stat(afile, &tstat);
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
/*
* If we're truncating an unopened file to a non-zero length,
* we need to bind it to a vm segment
AFS_GUNLOCK();
code = VNOP_FTRUNC(afile->vnode, mode, asize, (caddr_t) 0, &afs_osi_cred);
AFS_GLOCK();
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTOTYPES_H_
#define _OSI_PROTOTYPES_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
/* osi_groups.c */
extern void afs_aix_SetupPagRefCount(void);
int afs_osicred_initialized = 0;
afs_ucred_t afs_osi_cred;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct mount *afs_cacheVfsp;
int afs_CacheFSType = -1;
afs_int32 code;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
#ifdef AFS_DARWIN80_ENV
VATTR_INIT(&tvattr);
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
code = afs_osi_Stat(afile, &tstat);
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
AFS_GUNLOCK();
#ifdef AFS_DARWIN80_ENV
VATTR_INIT(&tvattr);
code = VOP_SETATTR(afile->vnode, &tvattr, &afs_osi_cred, current_proc());
#endif
AFS_GLOCK();
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTO_H_
#define _OSI_PROTO_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
/* osi_misc.c */
extern void darwin_notify_perms(struct unixuser *auser, int event);
extern int osi_lookupname(char *aname, enum uio_seg seg, int followlink,
#ifndef _OSI_PROTO_H_
#define _OSI_PROTO_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
-
-
#endif /* _OSI_PROTO_H_ */
#ifndef AFS_FBSD80_ENV /* cr_groups is now malloc()'d */
afs_ucred_t afs_osi_cred;
#endif
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct mount *afs_cacheVfsp;
afs_int32 code;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
#if defined(AFS_FBSD80_ENV)
vn_lock(afile->vnode, LK_EXCLUSIVE | LK_RETRY);
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
afs_int32 code, glocked;
AFS_STATCNT(osi_Truncate);
- ObtainWriteLock(&afs_xosi, 321);
vp = afile->vnode;
/*
* This routine only shrinks files, and most systems
#endif
if (glocked)
AFS_GLOCK();
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTO_H_
#define _OSI_PROTO_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
/* osi_misc.c */
extern int osi_lookupname(char *aname, enum uio_seg seg, int followlink,
struct vnode **vpp);
int afs_osicred_initialized = 0;
afs_ucred_t afs_osi_cred;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct vfs *afs_cacheVfsp;
afs_int32 code;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
code = VOP_GETATTR(afile->vnode, &tvattr, &afs_osi_cred, VSYNC);
AFS_GLOCK();
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
code = afs_osi_Stat(afile, &tstat);
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
VATTR_NULL(&tvattr);
/* note that this credential swapping stuff is only necessary because
* of ufs's references directly to u.u_cred instead of to
code = VOP_SETATTR(afile->vnode, &tvattr, &afs_osi_cred, 0);
AFS_GLOCK();
set_p_cred(u.u_procp, oldCred); /* restore */
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTO_H_
#define _OSI_PROTO_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
#endif /* _OSI_PROTO_H_ */
afs_ucred_t afs_osi_cred;
int afs_osicred_initialized = 0;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct vfs *afs_cacheVfsp;
afs_int32 code;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
tvattr.va_mask = AT_SIZE | AT_BLKSIZE | AT_MTIME | AT_ATIME;
AFS_VOP_GETATTR(afile->vnode, &tvattr, 0, &afs_osi_cred, code);
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
code = afs_osi_Stat(afile, &tstat);
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
AFS_GUNLOCK();
tvattr.va_mask = AT_SIZE;
tvattr.va_size = asize;
AFS_VOP_SETATTR(afile->vnode, &tvattr, 0, &afs_osi_cred, code);
AFS_GLOCK();
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTOTYPES_H_
#define _OSI_PROTOTYPES_H_
-/* osi_file.c */
-extern afs_lock_t afs_xosi;
-
#endif /* _OSI_PROTOTYPES_H_ */
/* Initialized in osi_InitCacheFSType(). Used to determine inode type. */
vnodeops_t *afs_xfs_vnodeopsp;
-extern afs_lock_t afs_xosi; /* lock is for tvattr */
-
ino_t
VnodeToIno(vnode_t * vp)
{
int code;
struct vattr vattr;
- ObtainWriteLock(&afs_xosi, 579);
vattr.va_mask = AT_FSID | AT_NODEID; /* quick return using this mask. */
AFS_GUNLOCK();
AFS_VOP_GETATTR(vp, &vattr, 0, OSI_GET_CURRENT_CRED(), code);
if (code) {
osi_Panic("VnodeToIno");
}
- ReleaseWriteLock(&afs_xosi);
return vattr.va_nodeid;
}
int code;
struct vattr vattr;
- ObtainWriteLock(&afs_xosi, 580);
vattr.va_mask = AT_FSID | AT_NODEID; /* quick return using this mask. */
AFS_GUNLOCK();
AFS_VOP_GETATTR(vp, &vattr, 0, OSI_GET_CURRENT_CRED(), code);
if (code) {
osi_Panic("VnodeToDev");
}
- ReleaseWriteLock(&afs_xosi);
return (dev_t) vattr.va_fsid;
}
int code;
struct vattr vattr;
- ObtainWriteLock(&afs_xosi, 581);
vattr.va_mask = AT_SIZE;
AFS_GUNLOCK();
AFS_VOP_GETATTR(vp, &vattr, 0, OSI_GET_CURRENT_CRED(), code);
if (code) {
osi_Panic("VnodeToSize");
}
- ReleaseWriteLock(&afs_xosi);
return vattr.va_size;
}
#endif /* AFS_SGI62_ENV */
int cache_fh_type = -1;
int cache_fh_len = -1;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct vfsmount *afs_cacheMnt;
extern struct super_block *afs_cacheSBp;
afs_osi_Stat(struct osi_file *afile, struct osi_stat *astat)
{
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
astat->size = i_size_read(OSIFILE_INODE(afile));
astat->mtime = OSIFILE_INODE(afile)->i_mtime.tv_sec;
astat->atime = OSIFILE_INODE(afile)->i_atime.tv_sec;
- ReleaseWriteLock(&afs_xosi);
return 0;
}
code = afs_osi_Stat(afile, &tstat);
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
AFS_GUNLOCK();
afs_linux_lock_inode(inode);
#ifdef STRUCT_INODE_HAS_I_ALLOC_SEM
#endif
afs_linux_unlock_inode(inode);
AFS_GLOCK();
- ReleaseWriteLock(&afs_xosi);
return code;
}
afs_init(void)
{
int err;
- AFS_RWLOCK_INIT(&afs_xosi, "afs_xosi");
#ifdef HAVE_LINUX_KUID_T
afs_ns = afs_current_user_ns();
extern afs_rwlock_t afs_xnfssrv;
/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
extern int osi_InitCacheInfo(char *aname);
extern int osi_rdwr(struct osi_file *osifile, struct uio *uiop, int rw);
extern struct file *afs_linux_raw_open(afs_dcache_id_t *ainode);
int afs_osicred_initialized;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct mount *afs_cacheVfsp;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
#ifdef AFS_NBSD50_ENV
code = VOP_GETATTR(afile->vnode, &tvattr, afs_osi_credp);
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
VATTR_NULL(&tvattr);
tvattr.va_size = asize;
AFS_GUNLOCK();
AFS_GLOCK();
if (code == 0)
afile->size = asize;
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTO_H_
#define _OSI_PROTO_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
#endif /* _OSI_PROTO_H_ */
int afs_osicred_initialized;
afs_ucred_t afs_osi_cred;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct mount *afs_cacheVfsp;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
AFS_GUNLOCK();
code = VOP_GETATTR(afile->vnode, &tvattr, afs_osi_credp, curproc);
AFS_GLOCK();
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
VATTR_NULL(&tvattr);
tvattr.va_size = asize;
AFS_GUNLOCK();
AFS_GLOCK();
if (code == 0)
afile->size = asize;
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTO_H_
#define _OSI_PROTO_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
#endif /* _OSI_PROTO_H_ */
int afs_osicred_initialized = 0;
-afs_lock_t afs_xosi; /* lock is for tvattr */
extern struct osi_dev cacheDev;
extern struct vfs *afs_cacheVfsp;
int code;
struct vattr vattr;
- /*
- * We lock xosi in osi_Stat, so we probably should
- * lock it here too - RWH.
- */
- ObtainWriteLock(&afs_xosi, 578);
vattr.va_mask = AT_SIZE;
AFS_GUNLOCK();
#ifdef AFS_SUN511_ENV
if (code) {
osi_Panic("VnodeToSize");
}
- ReleaseWriteLock(&afs_xosi);
return (afs_int32) (vattr.va_size);
}
afs_int32 code;
struct vattr tvattr;
AFS_STATCNT(osi_Stat);
- ObtainWriteLock(&afs_xosi, 320);
/* Ufs doesn't seem to care about the flags so we pass 0 for now */
tvattr.va_mask = AT_ALL;
AFS_GUNLOCK();
astat->mtime = tvattr.va_mtime.tv_sec;
astat->atime = tvattr.va_atime.tv_sec;
}
- ReleaseWriteLock(&afs_xosi);
return code;
}
code = afs_osi_Stat(afile, &tstat);
if (code || tstat.size <= asize)
return code;
- ObtainWriteLock(&afs_xosi, 321);
tvattr.va_mask = AT_SIZE;
tvattr.va_size = asize;
/*
code = VOP_SETATTR(afile->vnode, &tvattr, 0, afs_osi_credp);
#endif
AFS_GLOCK();
- ReleaseWriteLock(&afs_xosi);
return code;
}
#ifndef _OSI_PROTOTYPES_H_
#define _OSI_PROTOTYPES_H_
-/* osi_file.c */
-extern afs_rwlock_t afs_xosi;
-
/* osi_vnodeops.c */
int afs_putapage(struct vnode *vp, struct page *pages, u_offset_t * offp,
size_t * lenp, int flags, afs_ucred_t *credp);
"afs_xcbhash", (char *)&afs_xcbhash}, {
"afs_xaxs", (char *)&afs_xaxs}, {
"afs_xinterface", (char *)&afs_xinterface},
-#ifndef UKERNEL
- {
- "afs_xosi", (char *)&afs_xosi},
-#endif
{
"afs_xsrvAddr", (char *)&afs_xsrvAddr},
{