solaris10-20040624
[openafs.git] / src / afs / VNOPS / afs_vnop_read.c
index b91e19f..aa2ed8d 100644 (file)
@@ -27,6 +27,7 @@ RCSID
 #include "afs/afs_cbqueue.h"
 #include "afs/nfsclient.h"
 #include "afs/afs_osidnlc.h"
+#include "afs/afs_osi.h"
 
 
 extern char afs_zeros[AFS_ZEROS];
@@ -755,9 +756,19 @@ afs_UFSRead(register struct vcache *avc, struct uio *auio,
                          &tuio, NULL, NULL, -1);
 #elif defined(AFS_SUN5_ENV)
            AFS_GUNLOCK();
+#ifdef AFS_SUN510_ENV
+           {
+               caller_context_t ct;
+
+               VOP_RWLOCK(tfile->vnode, 0, &ct);
+               code = VOP_READ(tfile->vnode, &tuio, 0, afs_osi_credp, &ct);
+               VOP_RWUNLOCK(tfile->vnode, 0, &ct);
+           }
+#else
            VOP_RWLOCK(tfile->vnode, 0);
            code = VOP_READ(tfile->vnode, &tuio, 0, afs_osi_credp);
            VOP_RWUNLOCK(tfile->vnode, 0);
+#endif
            AFS_GLOCK();
 #elif defined(AFS_SGI_ENV)
            AFS_GUNLOCK();