diff options
-rw-r--r-- | sys/nfsclient/nfs_vnops.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index 718bc00..bc00477 100644 --- a/sys/nfsclient/nfs_vnops.c +++ b/sys/nfsclient/nfs_vnops.c @@ -2659,8 +2659,11 @@ again: if (bvecpos >= bvecsize) break; if ((bp->b_flags & (B_DELWRI | B_NEEDCOMMIT)) != - (B_DELWRI | B_NEEDCOMMIT) || - BUF_LOCK(bp, + (B_DELWRI | B_NEEDCOMMIT)) { + nbp = TAILQ_NEXT(bp, b_vnbufs); + continue; + } + if (BUF_LOCK(bp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, VI_MTX(vp))) { VI_LOCK(vp); |