[Gluster-devel] race condition in 3.5.0qa3?

Emmanuel Dreyfus manu at netbsd.org
Thu Dec 19 15:13:09 UTC 2013


On Thu, Dec 19, 2013 at 08:07:57AM +0000, Emmanuel Dreyfus wrote:
> This is an expected result: the backend filesystem is FFS, which does not
> support hard linking to a directory (POSIX says that operation *may* be
> supported). I have to look at the sources, but I guess a link(2) has
> to be turned into a linkat(2), so that the hard link is done on the 
> symlink and not on the symlink target (BSD and Linux link(2) behaviors
> differ here, and POSIX does not explicit what is right).

Indeed, that was my bug. Please review my fix:
http://review.gluster.org/#/c/6539/

Perhaps we could add a trap in the build environment so that people
do not commit this bug again? Something like this in a header file:
#ifdef HAVE_LINKAT
#define link(a,b) please_use_linkat_instead_of_link(a,b)
#endif

-- 
Emmanuel Dreyfus
manu at netbsd.org




More information about the Gluster-devel mailing list