[BUGFIX][PATCH 0/3] configfs: symlink() fixes

Louis Rilling
2008-06-17T17:37:34Z

[ applies on top of the previously submitted rename() vs rmdir() deadlock fix ]

Hi,

The following patchset fixes incorrect symlinks to dead items in configfs, which
are forbidden by specification.

The first patch actually prevents such dangling symlinks from being created, but
introduces a weird(?) behavior where a failing symlink() can make a racing
rmdir() fail in the symlink's parent and in the symlink's target as well. The
next patches prevent this behavior using a similar idea as for the mkdir() vs
rmdir() case previously submitted.

Summary:
configfs: Fix symlink() to a removing item
configfs: Rename CONFIGFS_USET_IN_MKDIR to CONFIGFS_USET_ATTACHING
configfs: Fix failing symlink() making rmdir() fail

fs/configfs/configfs_internal.h | 2 +-
fs/configfs/dir.c | 20 ++++++++++----------
fs/configfs/symlink.c | 33 +++++++++++++++++++++++++++++----
3 files changed, 40 insertions(+), 15 deletions(-)

--
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