From e90cdb8adfad6f925558754c6f758e27d22a5fde Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 4 Feb 2004 03:25:18 +0000 Subject: [PATCH] Changed the -x code to allow -L to copy a file on another filesystem that is pointed to by a symlink on our exclusive filesystem. --- flist.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/flist.c b/flist.c index f9c0f6e2..ff9d7741 100644 --- a/flist.c +++ b/flist.c @@ -766,13 +766,12 @@ struct file_struct *make_file(char *fname, int exclude_level) return NULL; } - if (one_file_system && st.st_dev != filesystem_dev) { - /* We allow a directory though to preserve the mount point. - * However, flag it so that we don't recurse. */ - if (!S_ISDIR(st.st_mode)) - return NULL; + /* We only care about directories because we need to avoid recursing + * into a mount-point directory, not to avoid copying a symlinked + * file if -L (or similar) was specified. */ + if (one_file_system && st.st_dev != filesystem_dev + && S_ISDIR(st.st_mode)) flags |= FLAG_MOUNT_POINT; - } if (check_exclude_file(thisname, S_ISDIR(st.st_mode) != 0, exclude_level)) return NULL; -- 2.34.1