From 8416a2d5585719266417043640ebc4016e38fdc3 Mon Sep 17 00:00:00 2001
From: Paul Fox <pgf@brightstareng.com>
Date: Mon, 27 Mar 2006 16:42:33 +0000
Subject: prevent find from ever descending into an xdev'ed directory.

---
 findutils/find.c | 24 +++++++++---------------
 1 file changed, 9 insertions(+), 15 deletions(-)

(limited to 'findutils/find.c')

diff --git a/findutils/find.c b/findutils/find.c
index c6aaf7aab..7a71af9eb 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -79,6 +79,15 @@ static int exec_opt;
 
 static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
 {
+#ifdef CONFIG_FEATURE_FIND_XDEV
+	if (S_ISDIR(statbuf->st_mode) && xdev_count) {
+		int i;
+		for (i=0; i<xdev_count; i++) {
+			if (xdev_dev[i] != statbuf->st_dev)
+				return SKIP;
+		}
+	}
+#endif
 	if (pattern != NULL) {
 		const char *tmp = strrchr(fileName, '/');
 
@@ -125,21 +134,6 @@ static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
 			goto no_match;
 	}
 #endif
-#ifdef CONFIG_FEATURE_FIND_XDEV
-	if (xdev_count) {
-		int i;
-		for (i=0; i<xdev_count; i++) {
-			if (xdev_dev[i] == statbuf-> st_dev)
-				break;
-		}
-		if (i == xdev_count) {
-			if(S_ISDIR(statbuf->st_mode))
-				return SKIP;
-			else
-				goto no_match;
-		}
-	}
-#endif
 #ifdef CONFIG_FEATURE_FIND_NEWER
 	if (newer_mtime != 0) {
 		time_t file_age = newer_mtime - statbuf->st_mtime;
-- 
cgit v1.2.3-55-g6feb