rclone/vfs
Nick Craig-Wood 46b080c092 vfs: Fix IO Error opening a file with O_CREATE|O_RDONLY in --vfs-cache-mode not full
Before this fix, opening a file with `O_CREATE|O_RDONLY` caused an IO error to
be returned when using `--vfs-cache-mode off` or `--vfs-cache-mode writes`.

This was because the file was opened with read intent, but the `O_CREATE`
implies write intent to create the file even though the file is opened
`O_RDONLY`.

This fix sets write intent for the file if `O_CREATE` is passed in which fixes
the problem for all the VFS cache modes.

It also extends the exhaustive open flags testing to `--vfs-cache-mode writes`
as well as `--vfs-cache-mode full` which would have caught this problem.

See: https://forum.rclone.org/t/i-o-error-trashing-file-on-sftp-mount/34317/
2022-11-24 17:04:36 +00:00
..
test_vfs Replace deprecated ioutil 2022-11-07 11:41:47 +00:00
vfscache vfs: fix deadlock caused by cache cleaner and upload finishing 2022-11-15 18:01:36 +00:00
vfscommon build: add package comments to silence revive linter 2022-08-28 13:43:51 +02:00
vfsflags vfs: add --vfs-disk-space-total-size option to manually set the total disk space 2022-07-08 17:26:54 +01:00
vfstest Replace deprecated ioutil 2022-11-07 11:41:47 +00:00
dir.go all: fix spelling across the project 2022-08-30 11:16:26 +02:00
dir_handle.go Spelling fixes 2020-10-14 15:21:31 +01:00
dir_handle_test.go 🧪 fstest: fix time tests on Windows and add convenience methods to check local and remote fs with precision 2021-11-09 11:43:36 +00:00
dir_test.go 🧪 fstest: fix time tests on Windows and add convenience methods to check local and remote fs with precision 2021-11-09 11:43:36 +00:00
errors.go build: drop support for go1.8 2019-04-15 21:49:58 +01:00
errors_test.go vfs: add tests and subsequent fixes 2017-11-04 10:24:10 +00:00
file.go vfs: Fix IO Error opening a file with O_CREATE|O_RDONLY in --vfs-cache-mode not full 2022-11-24 17:04:36 +00:00
file_test.go Replace deprecated ioutil 2022-11-07 11:41:47 +00:00
help.go build: reformat comments to pass go1.19 vet 2022-08-05 16:35:41 +01:00
make_open_tests.go Replace deprecated ioutil 2022-11-07 11:41:47 +00:00
open_test.go vfs: bring DO NOT EDIT comments in line with "go help generate" 2020-04-30 12:24:44 +01:00
rc.go vfs: add vfs/stats remote control to show statistics - fixes #5816 2021-11-23 18:00:21 +00:00
rc_test.go vfs: add vfs/stats remote control to show statistics - fixes #5816 2021-11-23 18:00:21 +00:00
read.go build: reformat comments to pass go1.19 vet 2022-08-05 16:35:41 +01:00
read_test.go 🧪 fstest: fix time tests on Windows and add convenience methods to check local and remote fs with precision 2021-11-09 11:43:36 +00:00
read_write.go build: reformat comments to pass go1.19 vet 2022-08-05 16:35:41 +01:00
read_write_test.go vfs: Fix IO Error opening a file with O_CREATE|O_RDONLY in --vfs-cache-mode not full 2022-11-24 17:04:36 +00:00
vfs.go Replace deprecated ioutil 2022-11-07 11:41:47 +00:00
vfs_case_test.go 🧪 fstest: fix time tests on Windows and add convenience methods to check local and remote fs with precision 2021-11-09 11:43:36 +00:00
vfs_test.go 🧪 fstest: fix time tests on Windows and add convenience methods to check local and remote fs with precision 2021-11-09 11:43:36 +00:00
vfstest_test.go mount: change interface of mount commands to take mount options 2020-07-24 10:48:51 +01:00
vstate_string.go vfs: fix virtual entries causing deleted files to still appear 2020-11-10 16:47:25 +00:00
write.go rcat: preserve metadata when Copy falls back to Rcat 2022-11-10 12:04:35 +00:00
write_test.go Remove github.com/pkg/errors and replace with std library version 2021-11-07 11:53:30 +00:00