diff options
Diffstat (limited to 'source/a/findutils/patches/findutils-4.4.2-xautofs.patch')
-rw-r--r-- | source/a/findutils/patches/findutils-4.4.2-xautofs.patch | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/source/a/findutils/patches/findutils-4.4.2-xautofs.patch b/source/a/findutils/patches/findutils-4.4.2-xautofs.patch new file mode 100644 index 00000000..c1ea81e4 --- /dev/null +++ b/source/a/findutils/patches/findutils-4.4.2-xautofs.patch @@ -0,0 +1,132 @@ +From 17e470dc1acca4824b70328d733d5f99c12d0d65 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka <kdudka@redhat.com> +Date: Wed, 11 May 2011 16:46:45 +0200 +Subject: [PATCH 3/4] findutils-4.4.2-xautofs.patch + +--- + doc/find.texi | 4 ++++ + find/defs.h | 3 +++ + find/find.1 | 3 +++ + find/ftsfind.c | 6 ++++++ + find/parser.c | 11 ++++++++++- + find/util.c | 1 + + 6 files changed, 27 insertions(+), 1 deletions(-) + +diff --git a/doc/find.texi b/doc/find.texi +index c584298..9731b71 100644 +--- a/doc/find.texi ++++ b/doc/find.texi +@@ -1446,6 +1446,10 @@ them. + There are two ways to avoid searching certain filesystems. One way is + to tell @code{find} to only search one filesystem: + ++@deffn Option -xautofs ++Don't descend directories on autofs filesystems. ++@end deffn ++ + @deffn Option -xdev + @deffnx Option -mount + Don't descend directories on other filesystems. These options are +diff --git a/find/defs.h b/find/defs.h +index 11d1d00..f95ce72 100644 +--- a/find/defs.h ++++ b/find/defs.h +@@ -557,6 +557,9 @@ struct options + /* If true, don't cross filesystem boundaries. */ + bool stay_on_filesystem; + ++ /* If true, don't descend directories on autofs filesystems. */ ++ bool bypass_autofs; ++ + /* If true, we ignore the problem where we find that a directory entry + * no longer exists by the time we get around to processing it. + */ +diff --git a/find/find.1 b/find/find.1 +index e851f82..a4799ff 100644 +--- a/find/find.1 ++++ b/find/find.1 +@@ -520,6 +520,9 @@ to stat them; this gives a significant increase in search speed. + .IP "\-version, \-\-version" + Print the \fBfind\fR version number and exit. + ++.IP \-xautofs ++Don't descend directories on autofs filesystems. ++ + .IP \-xdev + Don't descend directories on other filesystems. + +diff --git a/find/ftsfind.c b/find/ftsfind.c +index 9fdb8ef..bd7cc37 100644 +--- a/find/ftsfind.c ++++ b/find/ftsfind.c +@@ -485,6 +485,12 @@ consider_visiting (FTS *p, FTSENT *ent) + } + } + ++ if (options.bypass_autofs && ++ 0 == strcmp ("autofs", filesystem_type (&statbuf, ent->fts_name))) ++ { ++ fts_set(p, ent, FTS_SKIP); /* descend no further */ ++ } ++ + if ( (ent->fts_info == FTS_D) && !options.do_dir_first ) + { + /* this is the preorder visit, but user said -depth */ +diff --git a/find/parser.c b/find/parser.c +index 52a1ef6..995aec3 100644 +--- a/find/parser.c ++++ b/find/parser.c +@@ -146,6 +146,7 @@ static bool parse_user (const struct parser_table*, char *argv[], int * + static bool parse_version (const struct parser_table*, char *argv[], int *arg_ptr); + static bool parse_wholename (const struct parser_table*, char *argv[], int *arg_ptr); + static bool parse_xdev (const struct parser_table*, char *argv[], int *arg_ptr); ++static bool parse_xautofs (const struct parser_table*, char *argv[], int *arg_ptr); + static bool parse_ignore_race (const struct parser_table*, char *argv[], int *arg_ptr); + static bool parse_noignore_race (const struct parser_table*, char *argv[], int *arg_ptr); + static bool parse_warn (const struct parser_table*, char *argv[], int *arg_ptr); +@@ -306,6 +307,7 @@ static struct parser_table const parse_table[] = + PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but anyway -path will soon be in POSIX */ + {ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */ + PARSE_OPTION ("xdev", xdev), /* POSIX */ ++ PARSE_OPTION ("xautofs", xautofs), + PARSE_TEST ("xtype", xtype), /* GNU */ + #ifdef UNIMPLEMENTED_UNIX + /* It's pretty ugly for find to know about archive formats. +@@ -1239,7 +1241,7 @@ operators (decreasing precedence; -and is implicit where no others are given):\n + positional options (always true): -daystart -follow -regextype\n\n\ + normal options (always true, specified before other expressions):\n\ + -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf\n\ +- --version -xdev -ignore_readdir_race -noignore_readdir_race\n")); ++ --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race\n")); + puts (_("\ + tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N\n\ + -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME\n\ +@@ -2683,6 +2685,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr) + } + + static bool ++parse_xautofs (const struct parser_table* entry, char **argv, int *arg_ptr) ++{ ++ options.bypass_autofs = true; ++ return parse_noop (entry, argv, arg_ptr); ++} ++ ++static bool + parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr) + { + options.ignore_readdir_race = true; +diff --git a/find/util.c b/find/util.c +index 8577396..4d45f84 100644 +--- a/find/util.c ++++ b/find/util.c +@@ -1017,6 +1017,7 @@ set_option_defaults (struct options *p) + + p->full_days = false; + p->stay_on_filesystem = false; ++ p->bypass_autofs = false; + p->ignore_readdir_race = false; + + if (p->posixly_correct) +-- +1.7.4.4 + |