diff options
-rw-r--r-- | pym/portage/dbapi/vartree.py | 12 |
1 files changed, 8 insertions, 4 deletions
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) |