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