mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-02-01 10:42:05 -05:00
Back out bad refactor (thanks Wayne)
This commit is contained in:
9
flist.c
9
flist.c
@@ -293,7 +293,6 @@ static void set_filesystem(char *fname)
|
||||
STRUCT_STAT st;
|
||||
if (link_stat(fname, &st) != 0)
|
||||
return;
|
||||
|
||||
filesystem_dev = st.st_dev;
|
||||
}
|
||||
|
||||
@@ -702,18 +701,22 @@ void receive_file_entry(struct file_struct **fptr, unsigned short flags, int f)
|
||||
static int skip_filesystem(char *fname, STRUCT_STAT * st)
|
||||
{
|
||||
STRUCT_STAT st2;
|
||||
char *p = strrchr(fname, '/');
|
||||
|
||||
/* skip all but directories */
|
||||
if (!S_ISDIR(st->st_mode))
|
||||
return 1;
|
||||
|
||||
/* if its not a subdirectory then allow */
|
||||
if (!strrchr(fname, '/'))
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
if (link_stat(fname, &st2) != 0) {
|
||||
*p = 0;
|
||||
if (link_stat(fname, &st2)) {
|
||||
*p = '/';
|
||||
return 0;
|
||||
}
|
||||
*p = '/';
|
||||
|
||||
return (st2.st_dev != filesystem_dev);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user