need to use PGO_NOBLOCKALLOC also in ubc_alloc_direct() case, same

as non-direct code - otherwise the code tries to acquire the wapbl
lock again in genfs_getpages(), and panic due to locking against itself

towards PR kern/53124
This commit is contained in:
jdolecek 2018-11-20 20:07:19 +00:00
parent 6e1872671e
commit 29944bc553
1 changed files with 4 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: uvm_bio.c,v 1.97 2018/06/02 15:24:55 chs Exp $ */
/* $NetBSD: uvm_bio.c,v 1.98 2018/11/20 20:07:19 jdolecek Exp $ */
/*
* Copyright (c) 1998 Chuck Silvers.
@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: uvm_bio.c,v 1.97 2018/06/02 15:24:55 chs Exp $");
__KERNEL_RCSID(0, "$NetBSD: uvm_bio.c,v 1.98 2018/11/20 20:07:19 jdolecek Exp $");
#include "opt_uvmhist.h"
#include "opt_ubc.h"
@ -814,7 +814,8 @@ ubc_alloc_direct(struct uvm_object *uobj, voff_t offset, vsize_t *lenp,
{
voff_t pgoff;
int error;
int gpflags = flags | PGO_NOTIMESTAMP | PGO_SYNCIO | PGO_ALLPAGES;
int gpflags = flags | PGO_NOTIMESTAMP | PGO_SYNCIO | PGO_ALLPAGES
| PGO_NOBLOCKALLOC;
int access_type = VM_PROT_READ;
UVMHIST_FUNC("ubc_alloc_direct"); UVMHIST_CALLED(ubchist);