qemu/block
Bin Meng 69fbfff95e block: Refactor get_tmp_filename()
At present there are two callers of get_tmp_filename() and they are
inconsistent.

One does:

    /* TODO: extra byte is a hack to ensure MAX_PATH space on Windows. */
    char *tmp_filename = g_malloc0(PATH_MAX + 1);
    ...
    ret = get_tmp_filename(tmp_filename, PATH_MAX + 1);

while the other does:

    s->qcow_filename = g_malloc(PATH_MAX);
    ret = get_tmp_filename(s->qcow_filename, PATH_MAX);

As we can see different 'size' arguments are passed. There are also
platform specific implementations inside the function, and the use
of snprintf is really undesirable.

The function name is also misleading. It creates a temporary file,
not just a filename.

Refactor this routine by changing its name and signature to:

    char *create_tmp_file(Error **errp)

and use g_get_tmp_dir() / g_mkstemp() for a consistent implementation.

While we are here, add some comments to mention that /var/tmp is
preferred over /tmp on non-win32 hosts.

Signed-off-by: Bin Meng <bin.meng@windriver.com>
Message-Id: <20221010040432.3380478-2-bin.meng@windriver.com>
[kwolf: Fixed incorrect errno negation and iotest 051]
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2022-10-27 20:13:32 +02:00
..
export block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
monitor monitor: expose monitor_puts to rest of code 2022-10-06 11:53:40 +01:00
accounting.c block: add missed block_acct_setup with new block device init procedure 2022-09-30 18:42:34 +02:00
aio_task.c block/aio_task: assert max_busy_tasks is greater than 0 2021-10-05 18:56:41 +02:00
amend.c block/amend: Keep strong reference to BDS 2022-03-04 18:18:26 +01:00
backup.c block: simplify handling of try to merge different sized bitmaps 2022-06-24 17:07:06 +02:00
blkdebug.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
blklogwrites.c block: Change bdrv_{pread,pwrite,pwrite_sync}() param order 2022-07-12 12:14:55 +02:00
blkreplay.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
blkverify.c blkverify: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
block-backend.c block: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
block-copy.c block/block-copy: block_copy(): add timeout_ns parameter 2022-06-29 10:56:12 +03:00
block-gen.h scripts: add block-coroutine-wrapper.py 2020-10-05 10:59:06 +01:00
bochs.c block: Change bdrv_{pread,pwrite,pwrite_sync}() param order 2022-07-12 12:14:55 +02:00
cloop.c block: Make bdrv_{pread,pwrite}() return 0 on success 2022-07-12 12:14:55 +02:00
commit.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
copy-before-write.c copy-before-write: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
copy-before-write.h block/copy-before-write.h: global state API + assertions 2022-03-04 18:18:25 +01:00
copy-on-read.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
copy-on-read.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
coroutines.h block: Remove remaining unused symbols in coroutines.h 2022-07-12 12:14:56 +02:00
create.c block_int-common.h: assertions in the callers of BlockDriver function pointers 2022-03-04 18:18:25 +01:00
crypto.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
crypto.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
curl.c curl: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
dirty-bitmap.c block: simplify handling of try to merge different sized bitmaps 2022-06-24 17:07:06 +02:00
dmg-bz2.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
dmg-lzfse.c block: Remove unused include 2020-11-09 15:44:21 +01:00
dmg.c block: Make bdrv_{pread,pwrite}() return 0 on success 2022-07-12 12:14:55 +02:00
dmg.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
file-posix.c file-posix: Remove unused s->discard_zeroes 2022-10-07 12:11:41 +02:00
file-win32.c block: use int64_t instead of uint64_t in driver write handlers 2021-09-29 13:46:31 -05:00
filter-compress.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
gluster.c gluster: stop using .bdrv_needs_filename 2022-09-30 18:43:44 +02:00
io_uring.c block/io_uring: add missing include file 2022-08-02 11:01:24 +02:00
io.c block: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
iscsi-opts.c modules: add block module annotations 2021-07-09 18:20:27 +02:00
iscsi.c iscsi: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
linux-aio.c misc: fix commonly doubled up words 2022-08-01 11:58:02 +02:00
meson.build block: Implement blk_{pread,pwrite}() using generated_co_wrapper 2022-07-12 12:14:56 +02:00
mirror.c blockjob: protect iostatus field in BlockJob struct 2022-10-07 12:11:41 +02:00
nbd.c nbd: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
nfs.c nfs: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
null.c block: use int64_t instead of uint64_t in driver write handlers 2021-09-29 13:46:31 -05:00
nvme.c nvme: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
parallels-ext.c block: Change bdrv_{pread,pwrite,pwrite_sync}() param order 2022-07-12 12:14:55 +02:00
parallels.c parallels: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
parallels.h parallels: support bitmap extension for read-only mode 2021-03-08 14:56:55 +01:00
preallocate.c block: fix preallocate filter: don't do unaligned preallocate requests 2022-03-07 09:19:20 +01:00
progress_meter.c progressmeter: protect with a mutex 2021-06-25 14:24:24 +03:00
qapi-sysemu.c block: add 'force' parameter to 'blockdev-change-medium' command 2022-04-25 12:02:36 +02:00
qapi.c block: use GDateTime for formatting timestamp when dumping snapshot info 2021-06-14 13:28:50 +01:00
qcow2-bitmap.c block/qcow2-bitmap: Add missing cast to silent GCC error 2022-09-30 18:02:30 +02:00
qcow2-cache.c block: Change bdrv_{pread,pwrite,pwrite_sync}() param order 2022-07-12 12:14:55 +02:00
qcow2-cluster.c qcow2: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
qcow2-refcount.c qcow2: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
qcow2-snapshot.c block: Use bdrv_co_pwrite_sync() when caller is coroutine_fn 2022-07-12 12:14:56 +02:00
qcow2-threads.c qcow2: add zstd cluster compression 2020-05-13 14:20:31 +02:00
qcow2.c qcow2: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
qcow2.h qcow2: add missing coroutine_fn annotations 2022-10-07 12:11:40 +02:00
qcow.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
qed-check.c block/qed: add missed coroutine_fn markers 2019-04-30 15:29:00 +02:00
qed-cluster.c qed: protect table cache with CoMutex 2017-07-17 11:34:11 +08:00
qed-l2-cache.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qed-table.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qed.c qed: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
qed.h qed: Simplify backing reads 2020-07-06 10:34:14 +02:00
quorum.c quorum: Remove unnecessary forward declaration 2022-10-07 12:11:41 +02:00
raw-format.c raw-format: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
rbd.c block/rbd: report a better error when namespace does not exist 2022-06-24 17:07:06 +02:00
replication.c job.c: enable job lock/unlock and remove Aiocontext locks 2022-10-07 12:11:41 +02:00
reqlist.c block/reqlist: add reqlist_wait_all() 2022-03-07 09:33:30 +01:00
snapshot-access.c block: introduce snapshot-access block driver 2022-03-07 09:33:31 +01:00
snapshot.c include/block/snapshot: global state API + assertions 2022-03-04 18:18:25 +01:00
ssh.c Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
stream.c block/stream: Drain subtree around graph change 2022-03-29 16:30:55 +02:00
throttle-groups.c block/throttle-groups: throttle_group_co_io_limits_intercept(): 64bit bytes 2021-02-03 08:14:00 -06:00
throttle.c throttle: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
trace-events nbd: trace long NBD operations 2022-06-29 10:57:02 +03:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vdi.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
vhdx-endian.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vhdx-log.c block: Change bdrv_{pread,pwrite,pwrite_sync}() param order 2022-07-12 12:14:55 +02:00
vhdx.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
vhdx.h block/vhdx: Use IEC binary prefixes for size constants 2019-04-30 15:29:00 +02:00
vmdk.c vmdk: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
vpc.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
vvfat.c block: Refactor get_tmp_filename() 2022-10-27 20:13:32 +02:00
win32-aio.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
write-threshold.c write-threshold: deal with includes 2021-05-14 16:14:10 +02:00