From owner-freebsd-bugs Wed Jul 28 10:10:21 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 77E0F154C4 for ; Wed, 28 Jul 1999 10:10:17 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id KAA09660; Wed, 28 Jul 1999 10:10:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: by hub.freebsd.org (Postfix, from userid 32767) id B1BAF1537A; Wed, 28 Jul 1999 10:07:54 -0700 (PDT) Message-Id: <19990728170754.B1BAF1537A@hub.freebsd.org> Date: Wed, 28 Jul 1999 10:07:54 -0700 (PDT) From: kfarmer@sympatico.ca To: freebsd-gnats-submit@freebsd.org X-Send-Pr-Version: www-1.0 Subject: kern/12855: panic:softdep_flushfiles:looping, caused by user creating deep directory structure Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 12855 >Category: kern >Synopsis: panic:softdep_flushfiles:looping, caused by user creating deep directory structure >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Jul 28 10:10:01 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Kelvin Farmer >Release: 4.0-current (as of july 26, 1999) >Organization: >Environment: FreeBSD tristal.sympatico.ca 4.0-CURRENT FreeBSD 4.0-CURRENT #5: Wed Jul 28 12:29:57 EDT 1999 root@tristal.sympatico.ca:/usr/src/sys/compile/TRISTAL i386 >Description: if a user creates a very deep directory structure (eg, /usr/home/guest/tmp/tmp/tmp/tmp/tmp/....) Then umounting the filesystem causes: panic:softdep_flushfiles:looping. also: rm -rf cannot remove the directory structure, claims 'directory not empty' >How-To-Repeat: 1) create a directory structure at least 256(?) directories deep. 2) umount the filesystem. fsck is able to fix this on reboot. rm -r is able to remove the structure if you go far enough into it. from ffs_softdep.c: line 675 softdep_worklist_busy = 0; /* * If we are unmounting then it is an error to fail. If we * are simply trying to downgrade to read-only, then filesystem * activity can keep us busy forever, so we just fail with EBUSY. */ if (loopcnt == 0) { if (oldmnt->mnt_kern_flag & MNTK_UNMOUNT) panic("softdep_flushfiles: looping"); error = EBUSY; } return (error); >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message