Without this argument it's impossible to pass an object instance to procedure
callbacks which basically forces users to either use global variables or to
write additional boilerplate code and find object instances from rpc_context
pointer values.
Multithread support for Linux and Windows
Fix NFS4 behavior of chmod/chown/utimes
Add marshalling / unmarshalling of various NFSv4.1 structures (but not 4.1 support)
PS3 support
PS2 EE support
Support escaped characters in the URL
Fix MINGW build
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This mostly consists of creating one slave nfs_context for each nfs
thread to track the error-string.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
We create a new lock_owner for every open(), to reduce pressure on the
servers lock_owner cache we can tell it that this lock_owner will not
be used again and it can drop it from the cache.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This allows us to perform unlimited concurrent opens as we are longer
bound by rfc3530 8.1.5 which limits to only one active OPEN command
per lock_owner
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Some multi-stage operations in nfs v4 can not be interleaved
so add mutex to prevent them from running concurrently.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
The NFS4 pwrite operations contains a memory corruption if a write
is large than 4KB. The reason is that the buffer allocated within
nfs4_compund_async has a size of 4K and it does not account
for the size of the write buffer. To fix this the patch
padds a rpc_allocate_ndu2 function which an additional parameter
as an extra hint for the allocation.
Add a new function nfs_statvfs64() that returns a struct nfs_statvfs_64
where all fields are uint64_t.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Add two arguments to set which port to use for MOUNT (only used in NFSv3)
as well as for the NFS protocols.
When set to non-zero libnfs will connect directly to that port and bypass
the use of portmapper completely.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Rework the open() flow so we can append a extra callback to be invoked
once the open has completed.
Use this new feature to implement both nfs_truncate() as well as simplify
open(O_TRUNC) support.
Later this can be used for other commands too that need to open a path
and do something.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>