Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jul 1999 10:07:54 -0700 (PDT)
From:      kfarmer@sympatico.ca
To:        freebsd-gnats-submit@freebsd.org
Subject:   kern/12855: panic:softdep_flushfiles:looping, caused by user creating deep directory structure
Message-ID:  <19990728170754.B1BAF1537A@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990728170754.B1BAF1537A>