sync_dir: silence fsync() failing with EINVAL

Some network filesystems don't support this.
This commit is contained in:
Marian Beermann 2016-07-08 17:36:30 +02:00
parent 66cc520880
commit 0005023a73
No known key found for this signature in database
GPG Key ID: 9B8450B91D1362C1
1 changed files with 6 additions and 0 deletions

View File

@ -1,3 +1,4 @@
import errno
import os import os
import sys import sys
@ -7,6 +8,11 @@ def sync_dir(path):
fd = os.open(path, os.O_RDONLY) fd = os.open(path, os.O_RDONLY)
try: try:
os.fsync(fd) os.fsync(fd)
except OSError as os_error:
# Some network filesystems don't support this and fail with EINVAL.
# Other error codes (e.g. EIO) shouldn't be silenced.
if os_error.errno != errno.EINVAL:
raise
finally: finally:
os.close(fd) os.close(fd)