Mercurial > mm7
comparison lib/swig/swigwin-2.0.11/CCache/debian/patches/05_nfs_fix.diff @ 1899:b3009adc0e2f
Adding swig, gitignore, hgignore
author | Nomad |
---|---|
date | Mon, 21 Oct 2013 10:42:27 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1867:eb580660bbbb | 1899:b3009adc0e2f |
---|---|
1 --- ccache.1.orig 2007-05-20 17:30:57.000000000 +1200 | |
2 +++ ccache.1 2007-05-20 17:31:27.000000000 +1200 | |
3 @@ -367,12 +367,6 @@ | |
4 .IP o | |
5 ccache avoids a double call to cpp on a cache miss | |
6 .PP | |
7 -.SH "BUGS" | |
8 -.PP | |
9 -When the cache is stored on an NFS filesystem, the filesystem must be | |
10 -exported with the \fBno_subtree_check\fP option to make renames between | |
11 -directories reliable\&. | |
12 -.PP | |
13 .SH "CREDITS" | |
14 .PP | |
15 Thanks to the following people for their contributions to ccache | |
16 --- util.c.patched 2007-05-20 18:19:11.000000000 +1200 | |
17 +++ util.c 2007-05-20 18:20:55.000000000 +1200 | |
18 @@ -58,9 +58,26 @@ | |
19 } | |
20 } | |
21 | |
22 +static int safe_rename(const char* oldpath, const char* newpath) | |
23 +{ | |
24 + /* safe_rename is for creating entries in the cache. | |
25 + | |
26 + Works like rename(), but it never overwrites an existing | |
27 + cache entry. This avoids corruption on NFS. */ | |
28 + int status = link( oldpath, newpath ); | |
29 + if( status == 0 || errno == EEXIST ) | |
30 + { | |
31 + return unlink( oldpath ); | |
32 + } | |
33 + else | |
34 + { | |
35 + return -1; | |
36 + } | |
37 +} | |
38 + | |
39 /* move a file using rename */ | |
40 int move_file(const char *src, const char *dest) { | |
41 - return rename(src, dest); | |
42 + return safe_rename(src, dest); | |
43 } | |
44 | |
45 /* copy a file - used when hard links don't work |