summaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2019-06-07 12:05:02 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-06-08 16:01:36 +0100
commit3757073726a00c5250556aae3d0daac76b88085e (patch)
tree4404d65b8ee4635ae5657220d004e0923581abfa /scripts/lib/wic
parent666f6192aaa9e847ad0d920a487b82d984b58d26 (diff)
downloadopenembedded-core-3757073726a00c5250556aae3d0daac76b88085e.tar.gz
wic/filemap: handle FIGETBSZ failing
Some file systems don't support fetching the block size (notably the file system Docker uses for containers), so handle the iotctl() failing and raise the expected error. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/wic')
-rw-r--r--scripts/lib/wic/filemap.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/scripts/lib/wic/filemap.py b/scripts/lib/wic/filemap.py
index 244c07a71c..a3919fbcad 100644
--- a/scripts/lib/wic/filemap.py
+++ b/scripts/lib/wic/filemap.py
@@ -32,7 +32,10 @@ def get_block_size(file_obj):
"""
# Get the block size of the host file-system for the image file by calling
# the FIGETBSZ ioctl (number 2).
- binary_data = fcntl.ioctl(file_obj, 2, struct.pack('I', 0))
+ try:
+ binary_data = fcntl.ioctl(file_obj, 2, struct.pack('I', 0))
+ except OSError:
+ raise IOError("Unable to determine block size")
bsize = struct.unpack('I', binary_data)[0]
if not bsize:
import os