Louis Rilling
2008-Jun-16 18:09 UTC
[Ocfs2-devel] [PATCH][BUGFIX] configfs: Fix symlink() to a removing item
Hi, the following patch fixes the symlink bug I mentioned a few days ago. Thanks for your comments. Louis -- Dr Louis Rilling Kerlabs Skype: louis.rilling Batiment Germanium Phone: (+33|0) 6 80 89 08 23 80 avenue des Buttes de Coesmes http://www.kerlabs.com/ 35700 Rennes -------------- next part -------------- A non-text attachment was scrubbed... Name: configfs-do-not-symlink-to-removing-item.patch Type: text/x-diff Size: 3385 bytes Desc: not available Url : http://oss.oracle.com/pipermail/ocfs2-devel/attachments/20080616/468a2f8f/attachment.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://oss.oracle.com/pipermail/ocfs2-devel/attachments/20080616/468a2f8f/attachment-0001.bin
Joel Becker
2008-Jun-16 22:29 UTC
[Ocfs2-devel] [PATCH][BUGFIX] configfs: Fix symlink() to a removing item
On Mon, Jun 16, 2008 at 08:09:11PM +0200, Louis Rilling wrote:> This patch introduces a similar (weird?) behavior as with mkdir failures making > rmdir fail: if symlink() races with rmdir() of the parent directory (or its > youngest user-created ancestor if parent is a default group) or rmdir() of the > target directory, and then fails in configfs_create(), this can make the racing > rmdir() fail despite the concerned directory having no user-created entry (resp. > no symlink pointing to it or one of its default groups) in the end. > If this behavior is found unacceptable, I'll submit a fix in the same spirit as > the racing mkdir() fix.Ahh, but you can't wait on the mutex like you do in mkdir(), because they're not ordered - it can race rename again. Joel -- Dort wo man B?cher verbrennt, verbrennt man am Ende auch Mensch. (Wherever they burn books, they will also end up burning people.) - Heinrich Heine Joel Becker Principal Software Developer Oracle E-mail: joel.becker at oracle.com Phone: (650) 506-8127