On Mon, Jan 12, 2009 at 10:39:34AM -0500, Christoph Hellwig wrote:
> On Mon, Jan 12, 2009 at 10:33:06AM +1100, Dave Chinner wrote:
> > That should probably be namespaced correctly because it won't be
> > static on debug builds. i.e. xfs_handle_acceptable()
> > The args in this function are back to front compared to all the
> > other functions - the others are (filp, arg), this one is the
> > opposite.
> Yeah, I first had all this way and then changed it around to match
> the non-handle ioctls more closely but forgot this one.
> Updated patch below:
> Subject: xfs: fix dentry aliasing issues in open_by_handle
> From: Christoph Hellwig <hch@xxxxxx>
> Open by handle just grabs an inode by handle and then creates itself
> a dentry for it. While this works for regular files it is horribly
> broken for directories, where the VFS locking relies on the fact that
> there is only just one single dentry for a given inode, and that
> these are always connected to the root of the filesystem so that
> it's locking algorithms work (see Documentations/filesystems/Locking)
> Remove all the existing open by handle code and replace it with a small
> wrapper around the exportfs code which deals with all these issues.
> At the same time we also make the checks for a valid handle strict
> enough to reject all not perfectly well formed handles - given that
> we never hand out others that's okay and simplifies the code.
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>