Commit Graph

265 Commits (d86d5d18514a25da0347f5bc84aabac65302852e)

Author SHA1 Message Date
Daniel Abrecht eab4eac275 Define MSG_NOSIGNAL in windows if it doesn't exist. Windows doesn't have signals like SIGPIPE, so defining the flag as 0 is probably fine. 2018-04-29 12:02:08 +00:00
Shreyas Siravara 1fff7707f2 Add & export a call to initialize the pagecache 2018-04-26 18:15:02 -07:00
Daniel Abrecht b3fd3ca7e4 Move win32/win32_compat.h to include/win32/win32_compat.h 2018-04-16 19:42:38 +00:00
Ronnie Sahlberg b54fc96e00 Add nfsport/mountport arguments
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>
2018-04-08 14:36:37 +10:00
Ronnie Sahlberg 4dda1f87a4 nfsv4: add support for utime()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2018-01-10 17:09:14 +10:00
Ronnie Sahlberg 50068b8432 NFSv4: add support for fcntl locking
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2018-01-08 14:38:30 +10:00
Ronnie Sahlberg 09f8a621fb nfsv4: lock_owner is by client, not by filehandle
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2018-01-07 10:54:09 +10:00
Ronnie Sahlberg 208dd08039 NFSv4: add lockf emulation
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2018-01-07 08:35:42 +10:00
Ronnie Sahlberg 2fcb14cf62 Fix typo in header file
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-10-30 07:44:40 +10:00
Ronnie Sahlberg 8489557694 NFSv4: add utimes/lutimes support
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-09-03 06:25:55 +10:00
Ronnie Sahlberg 5ebd10f54c NFSv4: Add access()/access2()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-09-03 05:43:04 +10:00
Ronnie Sahlberg 4c6d19b3b8 NFSv4: Add support for chown/lchown/fchown
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-09-02 06:42:59 +10:00
Ronnie Sahlberg 6c034223fd NFSv4: Add support for chmod/lchmod/fchmod
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-09-01 14:02:43 +10:00
Ronnie Sahlberg c7655f90ca NFSv4: Add support for statvfs()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-27 07:56:19 +10:00
Ronnie Sahlberg 8f12f7f0a0 NFSv4: Add lseek() support.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-26 08:05:12 +10:00
Ronnie Sahlberg 73b81297e7 NFSv4: Add support for ftruncate()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-26 01:31:25 +10:00
Ronnie Sahlberg 80d3f48199 NFSv4: Add support for fsync()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-26 01:07:22 +10:00
Ronnie Sahlberg ebc2f0a6c2 NFSv3: Add support for open(O_CREAT)
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-25 18:55:25 +10:00
Ronnie Sahlberg 2b6216dd6f NFSv4: add nfs_truncate() support
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>
2017-08-25 10:37:07 +10:00
Ronnie Sahlberg cea99f8ed5 NFSv4: Add support for opendir()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-20 09:08:46 +10:00
Ronnie Sahlberg bd95371005 NFSv4: Add support for mknod()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-15 20:05:47 +10:00
Ronnie Sahlberg de9da5689d NFSv4: Add rename() support.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-14 09:20:08 +10:00
Ronnie Sahlberg ffafa5fd9c NFSv4: add nfs_link() support.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-08 20:47:22 +10:00
Ronnie Sahlberg 352325169c NFSv4: Add support for nfs_unlink()
This function is identical to nfs_rmdir() so create a common
function that we call from both unlink and rmdir.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-06 19:24:05 +10:00
Ronnie Sahlberg 9854c0d574 NFSv4: Add support for open_create() by plumbing it into open(O_CREAT)
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-06 19:15:04 +10:00
Ronnie Sahlberg 65a0110476 NFSv4: Add support for open(O_CREAT)
Add support for O_CREAT for NFSv4. Note, it is not implemented for NFSv3.
While it creates files we still need to add plumbing to get umask
implemented or else all files created will have mode 0.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-06 18:43:28 +10:00
Ronnie Sahlberg 0ce4917afd nfs_open2(): Add a new nfs_open2() function that takes a mode argument.
Pass mode all the way down to nfs*_open_async() but we do not yet have any
plumbing to actually use it. That will come later as we implement O_CREAT
support.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-06 16:02:39 +10:00
Ronnie Sahlberg 65de83140a NFSv4: Add support (and tests) for open(O_APPEND)
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-08-03 20:25:59 +10:00
Ronnie Sahlberg 2ce8890458 NFSv4: Add open(O_SYNC) support
Also update close() so we only send a COMMIT if there is still
unstaged data written.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-30 09:44:31 +10:00
Ronnie Sahlberg 42d14779b7 NFSv4: Add support for open(O_TRUNC)
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-30 08:36:18 +10:00
Ronnie Sahlberg 61e071d448 NFSv4: Add support for nfs_[p]write()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-29 19:52:41 +10:00
Ronnie Sahlberg 5c2d989887 NFSv4: Add support for readlink()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-26 14:26:29 +10:00
Ronnie Sahlberg f3211e9be5 NFSv4 Add support for symlink()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-26 14:26:29 +10:00
Ronnie Sahlberg dce044ab53 NFSv4: Add support for read() and pread()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-26 14:26:29 +10:00
Ronnie Sahlberg 0d9dd0ee44 NFSv4 Add support for nfs_open() nfs_fstat64() nfs_close()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-26 14:26:29 +10:00
Ronnie Sahlberg 93fbecd7c1 NFSv4 Add support for nfs_rmdir()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-14 07:04:28 +10:00
Ronnie Sahlberg 8a9fceb725 NFSv4: Add support for nfs_mkdir2()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-13 23:04:35 +10:00
Ronnie Sahlberg 3ced39f567 Rework the NFSv4 path lookup framework so it handles symlinks properly.
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-13 18:22:27 +10:00
Ronnie Sahlberg df94ae931a pdu->timeout needs to be uint64_t
pdu->timeout is the timeout for for the pdu using the unix epoch but
expressed in ms, not seconds.
As such it must be 64 bit as on 32 bit we would have already wrapped the
timer.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-08 17:08:17 +10:00
Ronnie Sahlberg 419e196979 rpc->timeout does not need to be 64 bit
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-08 16:46:24 +10:00
Ronnie Sahlberg dc9669abd5 Fix compiler warnings about cast from char* -> uint32_t*
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-08 16:33:55 +10:00
Ronnie Sahlberg 5a6865c7ab Change the paths for the nfs includes from libnfs-private.h
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-08 14:34:29 +10:00
Ronnie Sahlberg 4cb34e2c9a Merge branch 'nfsv4' 2017-07-08 09:58:11 +10:00
Chris Richards fb1efbe51c Increased resolution of PDU timeout from seconds to milliseconds 2017-07-08 09:47:51 +10:00
Ronnie Sahlberg 2b764fa926 NFSv4: Add support for nfs_stat64()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-08 07:41:11 +10:00
Ronnie Sahlberg 56194deeee NFS4: Add support to nfs_mount()
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-06 10:04:17 +10:00
Ronnie Sahlberg c9e546ba3c Reformat libnfs.h
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-03 11:07:58 +10:00
Ronnie Sahlberg ad6f95d9f9 More reformatting of libnfs-raw.h
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-01 09:07:28 +10:00
Ronnie Sahlberg db6d0836f4 TESTS: add tests for symlink/readlink
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-07-01 08:40:59 +10:00
Ronnie Sahlberg 0e0bb3fb34 NFSv4: Move all v3 specific code into its own nfsv3.c file
Split out the nfsv3 code from libnfs.c into its own file.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2017-06-30 13:48:59 +10:00