[openstack-dev] [cinder] should we use fsync when writing iscsi config file?

Chris Friesen chris.friesen at windriver.com
Mon Sep 28 04:19:52 UTC 2015


On 09/26/2015 02:48 AM, Julien Danjou wrote:
> On Tue, Sep 22 2015, Chris Friesen wrote:
>
>> On 09/22/2015 05:48 PM, Joshua Harlow wrote:
>>> A present:
>>>
>>>   >>> import contextlib
>>>   >>> import os
>>>   >>>
>>>   >>> @contextlib.contextmanager
>>> ... def synced_file(path, mode='wb'):
>>> ...   with open(path, mode) as fh:
>>> ...      yield fh
>>> ...      os.fdatasync(fh.fileno())
>>> ...
>>>   >>> with synced_file("/tmp/b.txt") as fh:
>>> ...    fh.write("b")
>>
>> Isn't that missing an "fh.flush()" somewhere before the fdatasync()?
>
> Unless proven otherwise, close() does a flush().

There's no close() before the fdatasync() in the above code.  (And it wouldn't 
make sense anyway because you need the open fd to do the fdatasync().)

Chris




More information about the OpenStack-dev mailing list