Avoid an exclusive acquisition of the object lock on the expected execution
authoralc <alc@FreeBSD.org>
Sun, 14 Sep 2014 18:07:55 +0000 (18:07 +0000)
committeralc <alc@FreeBSD.org>
Sun, 14 Sep 2014 18:07:55 +0000 (18:07 +0000)
commit810772ca9c678e3b54d4e970d9028be9b0a0a7f6
tree2bf12f22e73cb9521683f0cd0d2220af8de44c9a
parent3c95d9510474d6b979449e1aa4f54554fa784671
Avoid an exclusive acquisition of the object lock on the expected execution
path through the NFS clients' getpages functions.

Introduce vm_pager_free_nonreq().  This function can be used to eliminate
code that is duplicated in many getpages functions.  Also, in contrast to
the code that currently appears in those getpages functions,
vm_pager_free_nonreq() avoids acquiring an exclusive object lock in one
case.

Reviewed by: kib
MFC after: 6 weeks
Sponsored by: EMC / Isilon Storage Division
sys/fs/nfsclient/nfs_clbio.c
sys/nfsclient/nfs_bio.c
sys/vm/vm_pager.c
sys/vm/vm_pager.h
sys/vm/vnode_pager.c