return 0;  /* Is someone visiting anywhere in the tree ? */ if (may_umount_tree(mnt)) 
static int autofs4_check_tree(struct vfsmount *mnt,	       		      struct dentry *top,			      unsigned long timeout,			      int do_now){	struct dentry *this_parent = top;	struct list_head *next;	DPRINTK("parent %p %.*s",		top, (int)top->d_name.len, top->d_name.name);	/* Negative dentry - give up */	if (!simple_positive(top))		return 0;	/* Timeout of a tree mount is determined by its top dentry */	if (!autofs4_can_expire(top, timeout, do_now))		return 0;	spin_lock(&dcache_lock);repeat:	next = this_parent->d_subdirs.next;resume:	while (next != &this_parent->d_subdirs) {		struct dentry *dentry = list_entry(next, struct dentry, d_child);		/* Negative dentry - give up */		if (!simple_positive(dentry)) {			next = next->next;			continue;		}		DPRINTK("dentry %p %.*s",			dentry, (int)dentry->d_name.len, dentry->d_name.name);		if (!simple_empty_nolock(dentry)) {			this_parent = dentry;			goto repeat;		}		dentry = dget(dentry);		spin_unlock(&dcache_lock);		if (d_mountpoint(dentry)) {			/* First busy => tree busy */			if (!autofs4_check_mount(mnt, dentry)) {				dput(dentry);				return 0;			}		}		dput(dentry);		spin_lock(&dcache_lock);		next = next->next;	}	if (this_parent != top) {		next = this_parent->d_child.next;		this_parent = this_parent->d_parent;		goto resume;	}	spin_unlock(&dcache_lock);	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/3a9720ce73c9247e5262922d65e90444ea75eb50/expire.c/clean/fs/autofs4/expire.c