git: e237e2ba5f4f - main - vfs: only allow doomed vnodes to return EOPNOTSUPP for fplookup vops
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 06 Apr 2023 15:45:37 UTC
The branch main has been updated by mjg:
URL: https://cgit.FreeBSD.org/src/commit/?id=e237e2ba5f4fc008eaf6e306e69fb9d98f5de27d
commit e237e2ba5f4fc008eaf6e306e69fb9d98f5de27d
Author: Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2021-11-03 21:02:35 +0000
Commit: Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-04-06 15:20:41 +0000
vfs: only allow doomed vnodes to return EOPNOTSUPP for fplookup vops
This helps asserting that they are provided by filesystems indicating
they do it.
---
sys/kern/vfs_subr.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 84b56ceec727..5c1819800d96 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -5545,10 +5545,17 @@ vop_fplookup_vexec_debugpre(void *ap __unused)
}
void
-vop_fplookup_vexec_debugpost(void *ap __unused, int rc __unused)
+vop_fplookup_vexec_debugpost(void *ap, int rc)
{
+ struct vop_fplookup_vexec_args *a;
+ struct vnode *vp;
+
+ a = ap;
+ vp = a->a_vp;
VFS_SMR_ASSERT_ENTERED();
+ if (rc == EOPNOTSUPP)
+ VNPASS(VN_IS_DOOMED(vp), vp);
}
void