Skip to content

Commit

Permalink
vfs: fix saving from chrome without --vfs-cache-mode writes rclone#4293
Browse files Browse the repository at this point in the history
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/
  • Loading branch information
ncw committed Jul 28, 2020
1 parent 122a47f commit 4441e01
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions vfs/write.go
Original file line number Diff line number Diff line change
Expand Up @@ -283,11 +283,9 @@ func (fh *WriteFileHandle) Stat() (os.FileInfo, error) {

// Truncate file to given size
func (fh *WriteFileHandle) Truncate(size int64) (err error) {
// defer log.Trace(fh.remote, "size=%d", size)("err=%v", &err)
fh.mu.Lock()
defer fh.mu.Unlock()
if fh.closed {
return ECLOSED
}
if size != fh.offset {
fs.Errorf(fh.remote, "WriteFileHandle: Truncate: Can't change size without --vfs-cache-mode >= writes")
return EPERM
Expand Down

0 comments on commit 4441e01

Please sign in to comment.