Always supply curthread as argument to nfs_asyncio and nfs_doio
in nfs_strategy. Otherwise, for some buffers, signals would be ignored at the intr mounts. Reviewed by: mohan MFC after: 1 month Approved by: kan (mentor)
This commit is contained in:
parent
ccbca788b3
commit
201599c3af
@ -2695,16 +2695,10 @@ nfs_strategy(struct vop_strategy_args *ap)
|
||||
{
|
||||
struct buf *bp = ap->a_bp;
|
||||
struct ucred *cr;
|
||||
struct thread *td;
|
||||
|
||||
KASSERT(!(bp->b_flags & B_DONE), ("nfs_strategy: buffer %p unexpectedly marked B_DONE", bp));
|
||||
KASSERT(BUF_REFCNT(bp) > 0, ("nfs_strategy: buffer %p not locked", bp));
|
||||
|
||||
if (bp->b_flags & B_ASYNC)
|
||||
td = NULL;
|
||||
else
|
||||
td = curthread; /* XXX */
|
||||
|
||||
if (bp->b_iocmd == BIO_READ)
|
||||
cr = bp->b_rcred;
|
||||
else
|
||||
@ -2716,8 +2710,8 @@ nfs_strategy(struct vop_strategy_args *ap)
|
||||
* otherwise just do it ourselves.
|
||||
*/
|
||||
if ((bp->b_flags & B_ASYNC) == 0 ||
|
||||
nfs_asyncio(VFSTONFS(ap->a_vp->v_mount), bp, NOCRED, td))
|
||||
(void)nfs_doio(ap->a_vp, bp, cr, td);
|
||||
nfs_asyncio(VFSTONFS(ap->a_vp->v_mount), bp, NOCRED, curthread))
|
||||
(void)nfs_doio(ap->a_vp, bp, cr, curthread);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user