added errno.EINVAL check to fallocate
On some systems (eg Illumos), posix_fallocate() returns EINVAL when the underlying filesystem doesn't support the operation. On Linux, the fallocate() call returns EOPNOTSUPP. The need for this patch was revealed by Victor Rodionov <victor.rodionov@nexenta.com>. Change-Id: I06fa9d49e7ec4084135843b7e0c91948dc098d27
This commit is contained in:
parent
a7e6d44706
commit
2ca379d40f
@ -170,7 +170,8 @@ def fallocate(fd, size):
|
||||
# 1 means "FALLOC_FL_KEEP_SIZE", which means it pre-allocates invisibly
|
||||
ret = _sys_fallocate(fd, 1, 0, ctypes.c_uint64(size))
|
||||
err = ctypes.get_errno()
|
||||
if ret and err not in (0, errno.ENOSYS, errno.EOPNOTSUPP):
|
||||
if ret and err not in (0, errno.ENOSYS, errno.EOPNOTSUPP,
|
||||
errno.EINVAL):
|
||||
raise OSError(err, 'Unable to fallocate(%s)' % size)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user