Merge pull request #18 from radai-rosenblatt/master

make code compile on windows
refactor-out timestamp conversion code, allow for millisecond accuracy
Merge pull request #19 from radai-rosenblatt/master

refactor-out timestamp conversion code, allow for millisecond accuracy
make Stat Cloneable
Merge pull request #20 from radai-rosenblatt/master

make Stat Cloneable
calculate index in the FsExport constructor

While debugging slow NFS performance accompanied by high CPU usage noticed that FsExport.getIndex() determines some index on every call from what seems like immutable data. Moved it to constructor.

Target: master
Request: 0.7
Acked-by: Paul Millar <paul.millar@desy.de> Albert Rossi <arossi@fnal.gov>
Patch: https://rb.dcache.org/r/7372/
avoid extra copy of data buffer in nfs3.read
Merge pull request #27 from radai-rosenblatt/master

avoid extra copy of data buffer in nfs3.read
pseudofs: do not check READ_ATTR bit for unix

Skip the check, if we ask for ACE4_READ_ATTRIBUTES as unix
always allows it.

Acked-by: Paul Millar
Target: master, 0.9, 0.8, 0.7
allocate and use a single verifier instance instead of creating a new one for every write/commit
Merge pull request #28 from radai-rosenblatt/master

allocate and use a single verifier instance instead of creating a new on...
vfs-cache: invalidate stat cache on commit

Acked-by: Dmitry Litvintsev
Target: master
nfsv4: release file state only after successful LayoutReturn

in a situation when layout return takes log time, NFS server will reply
with ERR_DELAY. This will trigger retry on the client side. If
file state is already invalidated, then client will get BAD_STATEID
and propagate error to the application.

Acked-by: Gerd Behrmann
Target: master, 0.9, 0.8, 0.7
Update README

Add mailing list
nfsv4: disable grace period

Grace period is a time window given to clients to recover
open files and lock on server restart.

As we do not have a persistent storage for state information,
grace period makes no sense as it ends up as a simple delay
before first IO request can be processed.

Acked-by: Gerd Behrmann
Target: master, 0.9, 0.8
pom: update to oncrpc4j-2.3.1

Changelog for oncrpc4j-2.3.0..oncrpc4j-2.3.1
    * [a3c4887] portmap: add OncRpcEmbeddedPortmap#shutdown()

Acked-by: Gerd Behrmann
Target: master, 0.9, 0.8
nfsv4: leave the synchronized block when disposing a client

As Joshua Bloch says in "Effective Java" -

"Invoking alien methods from synchronized regions has caused
many deadlocks in real systems". Now we are one of them.

Observed on CMS instance @ DESY.

Acked-by: Gerd Behrmann
Target: master, 0.9, 0.8
Require-book: no
Require-notes: no
nfs4: remove unused code

Acked-by: Paul Millar
Target: master
nfs4: add ClientCB#cbPing()

The server must 'ping' the client to verify that back channel
is available.

+ small optimization.

Acked-by: Paul Millar
Target: master
nfs4: initialize state hander cache with provided lease time

Acked-by: Gerd Behrmann
Target: master