mirror of
https://git.freebsd.org/ports.git
synced 2025-06-23 21:50:32 -04:00
VOP_ACCESS 'a_mode' argument to 'a_accmode'. Reviewed by: Anish Mistry <amistry at am-productions dot biz> (maintainer)
80 lines
1.9 KiB
C
80 lines
1.9 KiB
C
--- fuse_module/fuse_vnops.c.orig 2008-02-05 00:25:57.000000000 -0500
|
|
+++ fuse_module/fuse_vnops.c 2008-10-29 19:21:51.000000000 -0400
|
|
@@ -799,8 +799,11 @@
|
|
struct vnode *vp = ap->a_vp;
|
|
struct vattr *vap = ap->a_vap;
|
|
struct ucred *cred = ap->a_cred;
|
|
+#if VOP_GETATTR_TAKES_THREAD
|
|
struct thread *td = ap->a_td;
|
|
-
|
|
+#else
|
|
+ struct thread *td = curthread;
|
|
+#endif
|
|
struct fuse_dispatcher fdi;
|
|
struct timespec uptsp;
|
|
int err = 0;
|
|
@@ -871,7 +874,11 @@
|
|
fuse_access(ap)
|
|
struct vop_access_args /* {
|
|
struct vnode *a_vp;
|
|
+#if VOP_ACCESS_TAKES_ACCMODE_T
|
|
+ accmode_t a_accmode;
|
|
+#else
|
|
int a_mode;
|
|
+#endif
|
|
struct ucred *a_cred;
|
|
struct thread *a_td;
|
|
} */ *ap;
|
|
@@ -886,7 +893,13 @@
|
|
else
|
|
facp.facc_flags |= FACCESS_DO_ACCESS;
|
|
|
|
- return fuse_access_i(vp, ap->a_mode, ap->a_cred, ap->a_td, &facp);
|
|
+ return fuse_access_i(vp,
|
|
+#if VOP_ACCESS_TAKES_ACCMODE_T
|
|
+ ap->a_accmode,
|
|
+#else
|
|
+ ap->a_mode,
|
|
+#endif
|
|
+ ap->a_cred, ap->a_td, &facp);
|
|
}
|
|
|
|
/*
|
|
@@ -946,7 +959,11 @@
|
|
/* We are to do the check in-kernel */
|
|
|
|
if (! (facp->facc_flags & FACCESS_VA_VALID)) {
|
|
- err = VOP_GETATTR(vp, VTOVA(vp), cred, td);
|
|
+ err = VOP_GETATTR(vp, VTOVA(vp), cred
|
|
+#if VOP_GETATTR_TAKES_THREAD
|
|
+ , td
|
|
+#endif
|
|
+ );
|
|
if (err)
|
|
return (err);
|
|
facp->facc_flags |= FACCESS_VA_VALID;
|
|
@@ -1929,7 +1946,11 @@
|
|
* It will not invalidate pages which are dirty, locked, under
|
|
* writeback or mapped into pagetables.")
|
|
*/
|
|
+#if VOP_GETATTR_TAKES_THREAD
|
|
err = vinvalbuf(vp, 0, td, PCATCH, 0);
|
|
+#else
|
|
+ err = vinvalbuf(vp, 0, PCATCH, 0);
|
|
+#endif
|
|
fufh->flags |= FOPEN_KEEP_CACHE;
|
|
}
|
|
|
|
@@ -3005,8 +3026,11 @@
|
|
struct vattr *vap = ap->a_vap;
|
|
struct vnode *vp = ap->a_vp;
|
|
struct ucred *cred = ap->a_cred;
|
|
+#if VOP_GETATTR_TAKES_THREAD
|
|
struct thread *td = ap->a_td;
|
|
-
|
|
+#else
|
|
+ struct thread *td = curthread;
|
|
+#endif
|
|
int err = 0;
|
|
struct fuse_dispatcher fdi;
|
|
struct fuse_setattr_in *fsai;
|