From: Zac Medico Date: Fri, 28 Sep 2007 17:07:37 +0000 (-0000) Subject: Bug #194081 - Add EBUSY to the list of ignored errnos for unlink X-Git-Tag: v2.2_pre1~760 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=e712d878ba0921bfd7090aced860bc315c264ceb;p=portage.git Bug #194081 - Add EBUSY to the list of ignored errnos for unlink and rmdir calls during unmerge. svn path=/main/trunk/; revision=7869 --- diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index f3b806ea5..9cde9624f 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1184,7 +1184,13 @@ class dblink(object): #process symlinks second-to-last, directories last. mydirs = [] - ignored_unlink_errnos = (errno.ENOENT, errno.ENOTDIR, errno.EISDIR) + ignored_unlink_errnos = ( + errno.EBUSY, errno.ENOENT, + errno.ENOTDIR, errno.EISDIR) + ignored_rmdir_errnos = ( + errno.EEXIST, errno.ENOTEMPTY, + errno.EBUSY, errno.ENOENT, + errno.ENOTDIR, errno.EISDIR) modprotect = os.path.join(self.vartree.root, "lib/modules/") def unlink(file_name, lstatobj): @@ -1349,9 +1355,7 @@ class dblink(object): bsd_chflags.chflags(parent_name, pflags) show_unmerge("<<<", "", "dir", obj) except EnvironmentError, e: - if e.errno not in (errno.ENOENT, - errno.EEXIST, errno.ENOTEMPTY, - errno.ENOTDIR): + if e.errno not in ignored_rmdir_errnos: raise if e.errno != errno.ENOENT: show_unmerge("---", "!empty", "dir", obj)