This patch adds a VOP_DEALLOCATE() to the NFS client.
For NFSv4.2 servers that support the Deallocate operation,
it is used. Otherwise, it falls back on calling
vop_stddeallocate(), which is defined as a non-static global
function.
It calls vinvalbuf() via ncl_vinvalbuf() and vnode_pager_purge_range()
before doing the deallocate, to ensure that stale cached file
data purged.
It returns EFBIG when the rqst->r_offset + rqst->r_len > maxfilesize.
This error needs to be added to VOP_DEALLOCATE.9 in a future commit.