From: Zac Medico Date: Wed, 25 May 2011 04:36:36 +0000 (-0700) Subject: vardbapi: use config._init_dirs() when necessary X-Git-Tag: v2.1.9.50~24 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=ed640f020b59d46876e74aae9e347242744442b3;p=portage.git vardbapi: use config._init_dirs() when necessary --- diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 1db7d9e57..aa57ab74f 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -37,7 +37,7 @@ from portage.const import CACHE_PATH, CONFIG_MEMORY_FILE, \ from portage.const import _ENABLE_DYN_LINK_MAP, _ENABLE_PRESERVE_LIBS from portage.dbapi import dbapi from portage.exception import CommandNotFound, \ - InvalidData, InvalidPackageName, \ + InvalidData, InvalidLocation, InvalidPackageName, \ FileNotFound, PermissionDenied, UnsupportedAPIException from portage.localization import _ from portage.util.movefile import movefile @@ -787,11 +787,12 @@ class vardbapi(dbapi): if incrementing: #increment counter counter += 1 - # use same permissions as config._init_dirs() - ensure_dirs(os.path.dirname(self._counter_path), - gid=portage_gid, mode=0o2750, mask=0o2) # update new global counter file - write_atomic(self._counter_path, str(counter)) + try: + write_atomic(self._counter_path, str(counter)) + except InvalidLocation: + self.settings._init_dirs() + write_atomic(self._counter_path, str(counter)) self._cached_counter = counter finally: self.unlock()