Revision 5b20c402
b/snf-pithos-backend/pithos/backends/lib/hashfiler/context_file.py | ||
---|---|---|
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 | 34 |
from os import SEEK_CUR, SEEK_SET, fsync |
35 |
from errno import ENOENT |
|
35 |
from errno import ENOENT, EROFS
|
|
36 | 36 |
|
37 | 37 |
|
38 | 38 |
_zeros = '' |
... | ... | |
144 | 144 |
try: |
145 | 145 |
fdesc = open(name, 'rb+') |
146 | 146 |
except IOError, e: |
147 |
if not self.create or e.errno != ENOENT: |
|
147 |
if self.create and e.errno == ENOENT: |
|
148 |
fdesc = open(name, 'w+') |
|
149 |
elif not self.create and e.errno == EROFS: |
|
150 |
fdesc = open(name, 'rb') |
|
151 |
else: |
|
148 | 152 |
raise |
149 |
fdesc = open(name, 'w+') |
|
150 | 153 |
|
151 | 154 |
self.fdesc = fdesc |
152 | 155 |
return self |
Also available in: Unified diff