From 34fada30127ac9cb0ac3fe9f685f9901414bb0ec Mon Sep 17 00:00:00 2001 From: "J.W. Schultz" Date: Sun, 25 Jan 2004 22:11:09 +0000 Subject: [PATCH] Tightened up code in skip_filesystem() --- flist.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/flist.c b/flist.c index 9f86521e..7ea494f8 100644 --- a/flist.c +++ b/flist.c @@ -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); } -- 2.34.1