apply debian/patches/05_nfs_fix.diff
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10906 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
05ec950cc2
commit
55246d6c1c
2 changed files with 18 additions and 7 deletions
|
|
@ -381,12 +381,6 @@ ccache can handle a much wider ranger of compiler options
|
||||||
.IP o
|
.IP o
|
||||||
ccache avoids a double call to cpp on a cache miss
|
ccache avoids a double call to cpp on a cache miss
|
||||||
.PP
|
.PP
|
||||||
.SH "BUGS"
|
|
||||||
.PP
|
|
||||||
When the cache is stored on an NFS filesystem, the filesystem must be
|
|
||||||
exported with the \fBno_subtree_check\fP option to make renames between
|
|
||||||
directories reliable\&.
|
|
||||||
.PP
|
|
||||||
.SH "CREDITS"
|
.SH "CREDITS"
|
||||||
.PP
|
.PP
|
||||||
Thanks to the following people for their contributions to ccache
|
Thanks to the following people for their contributions to ccache
|
||||||
|
|
|
||||||
|
|
@ -58,9 +58,26 @@ void copy_fd(int fd_in, int fd_out)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int safe_rename(const char* oldpath, const char* newpath)
|
||||||
|
{
|
||||||
|
/* safe_rename is for creating entries in the cache.
|
||||||
|
|
||||||
|
Works like rename(), but it never overwrites an existing
|
||||||
|
cache entry. This avoids corruption on NFS. */
|
||||||
|
int status = link( oldpath, newpath );
|
||||||
|
if( status == 0 || errno == EEXIST )
|
||||||
|
{
|
||||||
|
return unlink( oldpath );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* move a file using rename */
|
/* move a file using rename */
|
||||||
int move_file(const char *src, const char *dest) {
|
int move_file(const char *src, const char *dest) {
|
||||||
return rename(src, dest);
|
return safe_rename(src, dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* copy a file - used when hard links don't work
|
/* copy a file - used when hard links don't work
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue