mirror of
https://github.com/rclone/rclone
synced 2024-11-18 18:46:07 +01:00
vfs: fix saving from chrome without --vfs-cache-mode writes #4293
Due to Chrome's rather complicated use of file handles when saving files from the download windows, rclone was attempting to truncate a closed file. The file appeared closed due to the handling of 0 length files. This patch removes the check for the file being closed in the WriteFileHandle.Truncate call. This is safe because the only action this method takes is to emit an error message if the file is the wrong size. See: https://forum.rclone.org/t/google-drive-cannot-save-files-directly-from-browser-to-gdrive-mounted-path/17992/
This commit is contained in:
parent
122a47fba6
commit
4441e012cf
@ -283,11 +283,9 @@ func (fh *WriteFileHandle) Stat() (os.FileInfo, error) {
|
|||||||
|
|
||||||
// Truncate file to given size
|
// Truncate file to given size
|
||||||
func (fh *WriteFileHandle) Truncate(size int64) (err error) {
|
func (fh *WriteFileHandle) Truncate(size int64) (err error) {
|
||||||
|
// defer log.Trace(fh.remote, "size=%d", size)("err=%v", &err)
|
||||||
fh.mu.Lock()
|
fh.mu.Lock()
|
||||||
defer fh.mu.Unlock()
|
defer fh.mu.Unlock()
|
||||||
if fh.closed {
|
|
||||||
return ECLOSED
|
|
||||||
}
|
|
||||||
if size != fh.offset {
|
if size != fh.offset {
|
||||||
fs.Errorf(fh.remote, "WriteFileHandle: Truncate: Can't change size without --vfs-cache-mode >= writes")
|
fs.Errorf(fh.remote, "WriteFileHandle: Truncate: Can't change size without --vfs-cache-mode >= writes")
|
||||||
return EPERM
|
return EPERM
|
||||||
|
Loading…
Reference in New Issue
Block a user