code: func (f *sendReceiveFolder) shortcutFile(file, curFile protocol.FileInfo, dbUpdateChan chan<- dbUpdateJob) {
  	l.Debugln(f, "taking shortcut on", file.Name)
  
  	events.Default.Log(events.ItemStarted, map[string]string{
  		"folder": f.folderID,
  		"item":   file.Name,
  		"type":   "file",
  		"action": "metadata",
  	})
  
  	var err error
  	defer events.Default.Log(events.ItemFinished, map[string]interface{}{
  		"folder": f.folderID,
  		"item":   file.Name,
  		"error":  events.Error(err),
  		"type":   "file",
  		"action": "metadata",
  	})
  
  	f.queue.Done(file.Name)
  
  	if !f.IgnorePerms && !file.NoPermissions {
  		if err = f.fs.Chmod(file.Name, fs.FileMode(file.Permissions&0777)); err != nil {
  			f.newPullError(file.Name, err)
  			return
  		}
  	}
  
  	f.fs.Chtimes(file.Name, file.ModTime(), file.ModTime()) // never fails
  
  	// This may have been a conflict. We should merge the version vectors so
  	// that our clock doesn't move backwards.
  	file.Version = file.Version.Merge(curFile.Version)
  
  	dbUpdateChan <- dbUpdateJob{file, dbUpdateShortcutFile}
  }
docs: // shortcutFile sets file mode and modification time, when that's the only
  // thing that has changed.