Thread (11 messages) flat view 11 messages, 4 authors, 2016-06-15

Re: [PATCH v2] Add an option not to use link(src, dest) && unlink(src) when that is unreliable

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:46:39


On Sat, 25 Apr 2009, Johannes Schindelin wrote:
quoted hunk ↗ jump to hunk
diff --git a/sha1_file.c b/sha1_file.c
index 8fe135d..bb6eecf 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -2225,7 +2225,9 @@ int move_temp_to_file(const char *tmpfile, const char *filename)
 {
 	int ret = 0;
 
-	if (link(tmpfile, filename))
+	if (unreliable_hardlinks)
+		ret = ~EEXIST; /* anything but EEXIST */
Don't do this. ~EEXIST could be 0 (admittedly only if EEXIST is -1 which 
is not reasonable, but who knows about odd operating systems). Which is 
not a good return value either.

So why not just use an explicit error value like EIO? Don't play games 
with this.

			Linus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help