Date: Sat, 18 Sep 2010 18:37:42 +0000 (UTC) From: Jaakko Heinonen <jh@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r212826 - head/sys/fs/devfs Message-ID: <201009181837.o8IIbg20074321@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jh Date: Sat Sep 18 18:37:41 2010 New Revision: 212826 URL: http://svn.freebsd.org/changeset/base/212826 Log: - For consistency, remove "." and ".." entries from de_dlist before calling devfs_delete() (and thus possibly dropping dm_lock) in devfs_rmdir_empty(). - Assert that we don't return doomed entries from devfs_find(). [1] Suggested by: kib [1] Reviewed by: kib Modified: head/sys/fs/devfs/devfs_devs.c Modified: head/sys/fs/devfs/devfs_devs.c ============================================================================== --- head/sys/fs/devfs/devfs_devs.c Sat Sep 18 16:57:05 2010 (r212825) +++ head/sys/fs/devfs/devfs_devs.c Sat Sep 18 18:37:41 2010 (r212826) @@ -171,6 +171,8 @@ devfs_find(struct devfs_dirent *dd, cons continue; break; } + KASSERT(de == NULL || (de->de_flags & DE_DOOMED) == 0, + ("devfs_find: returning a doomed entry")); return (de); } @@ -302,6 +304,8 @@ devfs_rmdir_empty(struct devfs_mount *dm dd = devfs_parent_dirent(de); KASSERT(dd != NULL, ("devfs_rmdir_empty: NULL dd")); + TAILQ_REMOVE(&de->de_dlist, de_dot, de_list); + TAILQ_REMOVE(&de->de_dlist, de_dotdot, de_list); TAILQ_REMOVE(&dd->de_dlist, de, de_list); DEVFS_DE_HOLD(dd); devfs_delete(dm, de, DEVFS_DEL_NORECURSE);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009181837.o8IIbg20074321>