From: Jim Meyering Date: Mon, 3 Jul 2006 15:10:35 +0000 (+0000) Subject: The dev/inode of the topmost directory in each hierarchy were not X-Git-Tag: v6.0~224 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a47c5ca291f51f1efcf3322b7e0aa0e31e6404e8;p=thirdparty%2Fcoreutils.git The dev/inode of the topmost directory in each hierarchy were not being recorded. * src/remove.c (remove_cwd_entries): Don't call cycle_check here. (AD_push): Call it from here instead. --- diff --git a/ChangeLog b/ChangeLog index 183a8d1553..96391a3934 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2006-07-03 Jim Meyering + The dev/inode of the topmost directory in each hierarchy were not + being recorded. + * src/remove.c (remove_cwd_entries): Don't call cycle_check here. + (AD_push): Call it from here instead. + Fix two small leaks. * src/remove.c (AD_stack_clear): New function. (rm_1): Use it. diff --git a/src/remove.c b/src/remove.c index bc0b92b7bc..f85372bb17 100644 --- a/src/remove.c +++ b/src/remove.c @@ -590,6 +590,17 @@ AD_push (int fd_cwd, Dirstack_state *ds, char const *dir, } } + if (cycle_check (&ds->cycle_check_state, dir_sb_from_parent)) + { + error (0, 0, _("\ +WARNING: Circular directory structure.\n\ +This almost certainly means that you have a corrupted file system.\n\ +NOTIFY YOUR SYSTEM MANAGER.\n\ +The following directory is part of the cycle:\n %s\n"), + quote (full_filename ("."))); + longjmp (ds->current_arg_jumpbuf, 1); + } + /* Extend the stack. */ obstack_blank (&ds->Active_dir, sizeof (struct AD_ent)); @@ -1160,17 +1171,6 @@ remove_cwd_entries (DIR **dirp, break; } - if (cycle_check (&ds->cycle_check_state, subdir_sb)) - { - error (0, 0, _("\ -WARNING: Circular directory structure.\n\ -This almost certainly means that you have a corrupted file system.\n\ -NOTIFY YOUR SYSTEM MANAGER.\n\ -The following directory is part of the cycle:\n %s\n"), - quote (full_filename ("."))); - longjmp (ds->current_arg_jumpbuf, 1); - } - *subdir = xstrdup (f); if (closedir (*dirp) != 0) {