[Ocfs2-devel] [PATCH 0/2]v2 configfs: symlink() fixes

Louis Rilling louis.rilling at kerlabs.com
Mon Jun 23 05:16:16 PDT 2008


[ 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. This
behavior is fixed with the next patch.

Changelog:
  - fix error code when symlink's target is being removed
  - re-implemented the weird(?) behavior fix in a way that does not temporarily
    instantiate the new symlink in the VFS.

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

 fs/configfs/configfs_internal.h |    1 +
 fs/configfs/dir.c               |   24 +++++++++++++++++-------
 fs/configfs/symlink.c           |   14 +++++++++++++-
 3 files changed, 31 insertions(+), 8 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



More information about the Ocfs2-devel mailing list