|author||Filip Filmar <email@example.com>||Sat Jul 28 02:55:37 2018 -0700|
|committer||David Presotto <firstname.lastname@example.org>||Mon Aug 06 01:53:59 2018 +0000|
cmd/upspinfs: fixes an apparent rename/watch race Reported as GitHub issue #590. During a rename, it is posible that an intervening delete watch accidentally marks the newly created file as deleted. The sequence of events is as follows, when renaming file 1 to file 2: - Rename() is called - filesystem locked - Rename obtains oldn - filesystem lock released - watch gets notification: file1 deleted - watch locks filesystem - watch obtains oldn by looking up through path - watch releases lock - Rename() grabs lock again - Rename() fixes up the node map, reuses oldn in the nodemap, this time for the new filename - Rename unlocks and exits - Watch continues and marks oldn as deleted - FUSE now thinks that file 2 is deleted. This commit uses the fact that Rename() will fixup the 'uname' of the node to a new value. If the uname has changed since we looked up, we skip marking the delete. Change-Id: Ife3f77623c99790add22d5c748b7d9036c046a0f Reviewed-on: https://upspin-review.googlesource.com/19100 Reviewed-by: Andrew Gerrand <email@example.com> Reviewed-by: David Presotto <firstname.lastname@example.org>
Upspin is an experimental project to build a framework for naming and sharing files and other data securely, uniformly, and globally: a global name system of sorts.
It is not a file system, but a set of protocols and reference implementations that can be used to join things like file systems and other storage services to the name space.
Performance is not a primary goal. Uniformity and security are.
Upspin is not an official Google product.
Upspin has rough edges, and is not yet suitable for non-technical users.
Note that the Upspin project does not use GitHub pull requests, and that we use the issue tracker for bug reports and proposals only.
See the Contribution Guidelines for more information on contributing to the project.
Please report issues through our issue tracker.
All Upspin users should subscribe to the Upspin Announcements mailing list to receive critical information about the project.
Use the Upspin mailing list for discussion about Upspin use and development.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
The Upspin mascot is Copyright 2017 Renee French. All Rights Reserved.