Revision 5b20c402 snf-pithos-backend/pithos/backends/lib/hashfiler/context_file.py

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