Commit 34fada30 authored by J.W. Schultz's avatar J.W. Schultz

Tightened up code in skip_filesystem()

parent f91e01d9
......@@ -293,6 +293,7 @@ static void set_filesystem(char *fname)
STRUCT_STAT st;
if (link_stat(fname, &st) != 0)
return;
filesystem_dev = st.st_dev;
}
......@@ -695,28 +696,24 @@ void receive_file_entry(struct file_struct **fptr, unsigned short flags, int f)
}
/* determine if a file in a different filesstem should be skipped
/* determine if a file in a different filesystem should be skipped
when one_file_system is set. We bascally only want to include
the mount points - but they can be hard to find! */
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 (!p)
if (!strrchr(fname, '/'))
return 0;
*p = 0;
if (link_stat(fname, &st2)) {
*p = '/';
if (link_stat(fname, &st2) != 0) {
return 0;
}
*p = '/';
return (st2.st_dev != filesystem_dev);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment