Repository navigation
Conversation
|
Thanks a lot for you PR, good catch. What I do not get completely: When the external applications such as nautilus copies the xattrs, why should we not completely remove the user xattrs of openvfs? Why do you want to filter for certain members? Can you elaborate? Thanks. |
|
Thanks for updating the PR, but I am still not convinced, I still think you should remove the entire openVFS metadata that are inconsistent. The syncing application should, if the resource is still within a sync dir, set the data new anyway next moment. User Metadata should not be part of the openVFS Namespace anyway. That is why we put our metadata into a JSON document instead into single values. |
…op client File managers copy all user.* xattrs on copy and paste, so a copied file inherited the fileid and state of the original. Once a desktop client is registered, a setxattr of user.openvfs.data from any other process now removes the entry instead of writing it. The client sets it again for files inside the sync root.
8e45db7 to
c6eef91
Compare
|
You're right — I re-checked our sync client, and it writes its placeholder data directly anyway, so there's no case where a partial copy of Tested with a fake client over the socket API and |
Problem
File managers (Nautilus, Dolphin) copy all
user.*xattrs on copy and paste. A copieduser.openvfs.datacarries thefileidand state of the original, so the copy looks like the same file to the sync client.Solution
Once a desktop client is registered (VERSION handshake), a
setxattrofuser.openvfs.datafrom any other process removes the entry instead of writing it and returns success. The client sets the data again for files inside the sync root. Without a registered client the behaviour is unchanged.The earlier
-xoption for filtering single keys is gone, as suggested in the review.Test
cp --preserve=xattrinside the mount:setfattrofuser.openvfs.datais dropped, the client's own write is keptfileidfileid