-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lib/model: Correctly handle xattrs on directories (fixes #8657) #8658
Conversation
I'd forgotten to add code to set xattrs to the directory handling paths. To fix that and avoid similar mistakes in the future I moved the xattr handling to a new adjustCommonMetadata function, which previously just handled ownership. The idea is for this function to apply common things to all file types, so we can add things in one place and not forget half of them...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe adjustPlatformData
, as e.g. permissions, mod. time can also be understood as metadata (e.g. as in be able to take the shortcut path - there is even a comment using "metadata" there). Otherwise lgtm
@imsodin, do you think this is also worthy to include in the Android hotfix release? |
The description in #8657 makes it sound like a good idea. |
Didn't notice the request for android hotfix inclusion until now, but I think it's fine without anyway: On android there are no xattr/ownership concerned, and since the hotfix the inode time alone won't cause a file to be seen as changed. So all good on android as far as I see. |
* main: (23 commits) lib/fs: Optimize WindowsInvalidFilename (syncthing#8687) gui, man, authors: Update docs, translations, and contributors cmd/syncthing: Use main logger in generate subcommand (fixes syncthing#8682) (syncthing#8685) build: Update all dependencies (fixes syncthing#8679) (syncthing#8680) gui, man, authors: Update docs, translations, and contributors lib/model: Correctly set xattrs on temp files (fixes syncthing#8667) (syncthing#8670) gui: Automatically dismiss authentication reminder when in LDAP mode (fixes syncthing#8661) (syncthing#8663) lib/model: Correctly handle xattrs on directories (fixes syncthing#8657) (syncthing#8658) lib/protocol: Ignore inode time when xattr&ownership is ignored (fixes syncthing#8654) (syncthing#8655) lib/fs: Try to remove read only Windows files (fixes syncthing#3744) (syncthing#8650) gui: Add copy to clipboard, share by email, and share by SMS buttons to device IDs (fixes syncthing#2771, ref syncthing#3868) (syncthing#7984) gui, man, authors: Update docs, translations, and contributors build: Add GitHub actions build for Windows (syncthing#8627) gui: Fix connection type icon width (fixes syncthing#8592) (syncthing#8644) gui: Adjust connection type icon size scaling and alignment (syncthing#8645) docker: Use healthcheck endpoint (syncthing#8640) lib/connections: Use adaptive write size for rate limited connections (fixes syncthing#8630) (syncthing#8631) gui: Mark devices that haven't connected for a long time (fixes syncthing#7703) (syncthing#8530) gui: Fix rescan interval when add encrypted folder with watch for changes enabled (fixes syncthing#8570) (syncthing#8571) gui: Always show Out of Sync Items for remote devices (syncthing#8632) ...
I'd forgotten to add code to set xattrs to the directory handling paths. To fix that and avoid similar mistakes in the future I moved the xattr handling to a new adjustCommonMetadata function, which previously just handled ownership. The idea is for this function to apply common things to all file types, so we can add things in one place and not forget half of them...