Hi Maz, thanks for the information!
The situation we're in is where we are suspecting the file locking on a shared network file system to be broken, so we were looking for ways to avoid any locking. I had tried some variations on your image-opts style invocation, but did not find any variant where the automatic file format detection would be preserved. For instance, with --image-opts driver=file,filename=foo.qcow2,locking=off it would think the file is raw. But the one you give seems to do what I want to experiment with, so thanks again! -Olaf. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1865048 Title: qemu-img --force-share does not disable file locking Status in QEMU: Invalid Bug description: The new option "--force-share" for qemu-img does not disable file locking. I tried it with version qemu-img version 2.11.1(Debian 1:2.11+dfsg- 1ubuntu7.21~cloud0) and I traced the source code of the current git trunk. Sample to demonstrate: # strace qemu-img info --force-share testfile.qcow2 2>&1 | grep F_RDLCK fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 fcntl(11, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=100, l_len=1}) = 0 I traced the passing of the --force-share option through the source code (I used commit 6c599282f8 as of Mon Feb 17 13:32:25 2020 +0000) qemu-img.c:img_info() force_share = true; qemu-img.c:collect_image_info_list(force_share) qemu-img.c:img_open(force_share) qemu-img.c:img_open_file(force_share) qdict_put_bool(options, BDRV_OPT_FORCE_SHARE, true); block/block-backend.c:blk_new_open(options) block.c:bdrv_open(options) block.c:bdrv_open_inheritoptions() block.c:bdrv_open_common(options) bs->force_share = qemu_opt_get_bool(opts, BDRV_OPT_FORCE_SHARE, false); block.c:bdrv_open_driver(bs) include/block/block_int.h:int (*bdrv_file_open)(BlockDriverState *bs, QDict *options, int flags, block/file-posix.c:.bdrv_file_open = raw_open, block/file-posix.c:raw_open_common(bs) locking = qapi_enum_parse(&OnOffAuto_lookup, qemu_opt_get(opts, "locking"), ON_OFF_AUTO_AUTO, &local_err); ignoring bs->force_share At the end, bs->force_share is ignored in determining the locking value. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1865048/+subscriptions