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, cel MFC after: 1 month Approved by: pjd (mentor)
This commit is contained in:
parent
1a8b0c1571
commit
a881fd5a0a
@ -2444,17 +2444,11 @@ nfs4_strategy(struct vop_strategy_args *ap)
|
||||
{
|
||||
struct buf *bp = ap->a_bp;
|
||||
struct ucred *cr;
|
||||
struct thread *td;
|
||||
int error = 0;
|
||||
|
||||
KASSERT(!(bp->b_flags & B_DONE), ("nfs4_strategy: buffer %p unexpectedly marked B_DONE", bp));
|
||||
KASSERT(BUF_REFCNT(bp) > 0, ("nfs4_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
|
||||
@ -2466,8 +2460,8 @@ nfs4_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))
|
||||
error = nfs_doio(ap->a_vp, bp, cr, td);
|
||||
nfs_asyncio(VFSTONFS(ap->a_vp->v_mount), bp, NOCRED, curthread))
|
||||
error = nfs_doio(ap->a_vp, bp, cr, curthread);
|
||||
return (error);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user