Re: rms_rlock with non-sleepable locks held

From: Dag-Erling_Smørgrav <des_at_FreeBSD.org>
Date: Sat, 16 May 2026 13:48:03 UTC
Konstantin Belousov <kostikbel@gmail.com> writes:> diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
> index b3a6e8ce2e02..d19776940bc3 100644
> --- a/sys/kern/vfs_subr.c
> +++ b/sys/kern/vfs_subr.c
> @@ -6509,7 +6509,7 @@ vop_read_post(void *ap, int rc)
>  	struct vop_read_args *a = ap;
>  
>  	if (!rc) {
> -		VFS_KNOTE_LOCKED(a->a_vp, NOTE_READ);
> +		VN_KNOTE_LOCKED(a->a_vp, NOTE_READ);

Did you mean to use VN_KNOTE_UNLOCKED() here...

>  		INOTIFY(a->a_vp, IN_ACCESS);
>  	}
>  }
> @@ -6520,7 +6520,7 @@ vop_read_pgcache_post(void *ap, int rc)
>  	struct vop_read_pgcache_args *a = ap;
>  
>  	if (rc == 0) {
> -		VFS_KNOTE_LOCKED(a->a_vp, NOTE_READ);
> +		VN_KNOTE_UNLOCKED(a->a_vp, NOTE_READ);

...like you do here?

>  		INOTIFY(a->a_vp, IN_ACCESS);
>  	}
>  }
>

DES
-- 
Dag-Erling Smørgrav - des@FreeBSD.org