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:
Konstantin Belousov 2006-07-08 15:36:51 +00:00
parent ccbca788b3
commit 201599c3af
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=160181

View File

@ -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);
}