mirror of
https://github.com/rclone/rclone.git
synced 2024-12-23 07:29:35 +01:00
vfs: update cached copy if we know it has changed even if pending opens
This fixes a problem with Caddy serving corrupted files out of the VFS cache when the file on the remote changed.
This commit is contained in:
parent
9b011ce7e4
commit
5795bd7db6
@ -112,8 +112,8 @@ func (fh *RWFileHandle) openPending(truncate bool) (err error) {
|
||||
// if not truncating the file, need to read it first
|
||||
if fh.flags&os.O_TRUNC == 0 && !truncate {
|
||||
// If the remote object exists AND its cached file exists locally AND there are no
|
||||
// other handles with it open writers, then attempt to update it.
|
||||
if o != nil && fh.d.vfs.cache.opens(fh.remote) <= 1 {
|
||||
// other RW handles with it open, then attempt to update it.
|
||||
if o != nil && fh.file.rwOpens() == 0 {
|
||||
cacheObj, err := fh.d.vfs.cache.f.NewObject(fh.remote)
|
||||
if err == nil && cacheObj != nil {
|
||||
cacheObj, err = copyObj(fh.d.vfs.cache.f, cacheObj, fh.remote, o)
|
||||
|
Loading…
Reference in New Issue
Block a user