Skip to content

Commits

Permalink
fuse-exports-n…
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Oct 27, 2020

  1. iotests/308: Add test for FUSE exports

    We have good coverage of the normal I/O paths now, but what remains is a
    test that tests some more special cases: Exporting an image on itself
    (thus turning a formatted image into a raw one), some error cases, and
    non-writable and non-growable exports.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    dd83a9c View commit details
    Browse the repository at this point in the history
  2. iotests: Enable fuse for many tests

    Many tests (that do not support generic protocols) can run just fine
    with FUSE-exported images, so allow them to.  Note that this is no
    attempt at being definitely complete.  There are some tests that might
    be modified to run on FUSE, but this patch still skips them.  This patch
    only tries to pick the rather low-hanging fruits.
    
    Note that 221 and 250 only pass when .lseek is correctly implemented,
    which is only possible with a libfuse that is 3.8 or newer.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    d420a25 View commit details
    Browse the repository at this point in the history
  3. iotests: Allow testing FUSE exports

    This pretends FUSE exports are a kind of protocol.  As such, they are
    always tested under the format node.  This is probably the best way to
    test them, actually, because this will generate more I/O load and more
    varied patterns.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    125c62a View commit details
    Browse the repository at this point in the history
  4. iotests: Give access to the qemu-storage-daemon

    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    a3bfd67 View commit details
    Browse the repository at this point in the history
  5. storage-daemon: Call bdrv_close_all() on exit

    Otherwise, exports and block devices are not properly shut down and
    closed, unless the users explicitly issues blockdev-del and
    block-export-del commands for each of them.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    7bfe28c View commit details
    Browse the repository at this point in the history
  6. iotests/287: Clean up subshell test image

    287 creates an image in a subshell (thanks to the pipe) to see whether
    that is possible with compression_type=zstd.  If _make_test_img were to
    modify any global state, this global state would then be lost before we
    could cleanup the image.
    
    When using FUSE as the test protocol, this global state is important, so
    clean up the image before the state is lost.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    5a33efc View commit details
    Browse the repository at this point in the history
  7. iotests: Let _make_test_img guess $TEST_IMG_FILE

    When most iotests want to create a test image that is named differently
    from the default $TEST_IMG, they do something like this:
    
        TEST_IMG="$TEST_IMG.base" _make_test_img $options
    
    This works fine with the "file" protocol, but not so much for anything
    else: _make_test_img tries to create an image under $TEST_IMG_FILE
    first, and only under $TEST_IMG if the former is not set; and on
    everything but "file", $TEST_IMG_FILE is set.
    
    There are two ways we can fix this: First, we could make all tests
    adjust not only TEST_IMG, but also TEST_IMG_FILE if that is present
    (e.g. with something like _set_test_img_suffix $suffix that would affect
    not only TEST_IMG but also TEST_IMG_FILE, if necessary).  This is a
    pretty clean solution, and this is maybe what we should have done from
    the start.
    
    But it would also require changes to most existing bash tests.  So the
    alternative is this: Let _make_test_img see whether $TEST_IMG_FILE still
    points to the original value.  If so, it is possible that the caller has
    adjusted $TEST_IMG but not $TEST_IMG_FILE.  In such a case, we can (for
    most protocols) derive the corresponding $TEST_IMG_FILE value from
    $TEST_IMG value and thus work around what technically is the caller
    misbehaving.
    
    This second solution is less clean, but it is robust against people
    keeping their old habit of adjusting TEST_IMG only, and requires much
    less changes.  So this patch implements it.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    bfa7c0e View commit details
    Browse the repository at this point in the history
  8. iotests: Restrict some Python tests to file

    Most Python tests are restricted to the file protocol (without
    explicitly saying so), but these are the ones that would break
    ./check -fuse -qcow2.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    c351499 View commit details
    Browse the repository at this point in the history
  9. iotests/091: Use _cleanup_qemu instad of "wait"

    If the test environment has some other child processes running (like a
    storage daemon that provides a FUSE export), then "wait" will never
    finish.  Use wait=yes _cleanup_qemu instead.
    
    (We need to discard the output so there is no change to the reference
    output.)
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    27fbc91 View commit details
    Browse the repository at this point in the history
  10. iotests: Derive image names from $TEST_IMG

    Avoid creating images with custom filenames in $TEST_DIR, because
    non-file protocols may want to keep $TEST_IMG (and all other test
    images) in some other directory.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    0effc8d View commit details
    Browse the repository at this point in the history
  11. iotests/046: Avoid renaming images

    This generally does not work on non-file protocols.  It is better to
    create the image with the final name from the start, and most tests do
    this already.  Let 046 follow suit.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    a09e91a View commit details
    Browse the repository at this point in the history
  12. iotests: Use convert -n in some cases

    qemu-img convert (without -n) can often be replaced by a combination of
    _make_test_img + qemu-img convert -n.  Doing so allows converting to
    protocols that do not allow direct file creation, such as FUSE exports.
    The only problem is that for formats other than qcow2 and qed (qcow1 at
    least), this may lead to high disk usage for some reason, so we cannot
    do it everywhere.
    
    But we can do it in 028 and 089, so let us do that so they can run on
    FUSE exports.  Also, in 028 this allows us to remove a 9-line comment
    that used to explain why we cannot safely filter drive-backup's image
    creation output.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    6099ed6 View commit details
    Browse the repository at this point in the history
  13. iotests: Do not pipe _make_test_img

    Executing _make_test_img as part of a pipe will undo all variable
    changes it has done.  As such, this could not work with FUSE (because
    we want to remember all of our exports and their qemu instances).
    
    Replace the pipe by a temporary file in 071 and 174 (the two tests that
    can run on FUSE).
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    9c0cd7a View commit details
    Browse the repository at this point in the history
  14. iotests: Do not needlessly filter _make_test_img

    In most cases, _make_test_img does not need a _filter_imgfmt on top.  It
    does that by itself.
    
    (The exception is when IMGFMT has been overwritten but TEST_IMG has not.
    In such cases, we do need a _filter_imgfmt on top to filter the test's
    original IMGFMT from TEST_IMG.)
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Reviewed-by: Kevin Wolf <kwolf@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    b875528 View commit details
    Browse the repository at this point in the history
  15. fuse: Implement hole detection through lseek

    This is a relatively new feature in libfuse (available since 3.8.0,
    which was released in November 2019), so we have to add a dedicated
    check whether it is available before making use of it.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    299188a View commit details
    Browse the repository at this point in the history
  16. fuse: (Partially) implement fallocate()

    This allows allocating areas after the (old) EOF as part of a growing
    resize, writing zeroes, and discarding.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    ea47c45 View commit details
    Browse the repository at this point in the history
  17. fuse: Allow growable exports

    These will behave more like normal files in that writes beyond the EOF
    will automatically grow the export size.
    
    As an optimization, keep the RESIZE permission for growable exports so
    we do not have to take it for every post-EOF write.  (This permission is
    not released when the export is destroyed, because at that point the
    BlockBackend is destroyed altogether anyway.)
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    3e6d56b View commit details
    Browse the repository at this point in the history
  18. fuse: Implement standard FUSE operations

    This makes the export actually useful instead of only producing errors
    whenever it is accessed.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    e181ecf View commit details
    Browse the repository at this point in the history
  19. fuse: Allow exporting BDSs via FUSE

    block-export-add type=fuse allows mounting block graph nodes via FUSE on
    some existing regular file.  That file should then appears like a raw
    disk image, and accesses to it result in accesses to the exported BDS.
    
    Right now, we only implement the necessary block export functions to set
    it up and shut it down.  We do not implement any access functions, so
    accessing the mount point only results in errors.  This will be
    addressed by a followup patch.
    
    We keep a hash table of exported mount points, because we want to be
    able to detect when users try to use a mount point twice.  This is
    because we invoke stat() to check whether the given mount point is a
    regular file, but if that file is served by ourselves (because it is
    already used as a mount point), then this stat() would have to be served
    by ourselves, too, which is impossible to do while we (as the caller)
    are waiting for it to settle.  Therefore, keep track of mount point
    paths to at least catch the most obvious instances of that problem.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    ff37eb1 View commit details
    Browse the repository at this point in the history
  20. meson: Detect libfuse

    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    e808784 View commit details
    Browse the repository at this point in the history
  21. iotests/291: Stop NBD server

    nbd_server_start_unix_socket() includes an implicit nbd_server_stop(),
    but we still need an explicit one at the end of the test (where there
    follows no next nbd_server_start_unix_socket()), or qemu-nbd will linger
    until the test exits.
    
    This will become important when enabling this test to run on FUSE
    exports, because then the export (which is the image used by qemu-nbd)
    will go away before qemu-nbd exits, which will lead to qemu-nbd
    complaining that it cannot flush the bitmaps in the image.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    99d9ba9 View commit details
    Browse the repository at this point in the history
  22. iotests/291: Filter irrelevant parts of img-info

    We need to let _img_info emit the format-specific information so we get
    the list of bitmaps we want, but we do not need anything but the
    bitmaps.  So filter out everything that is irrelevant to us.  (Ideally,
    this would be a generalized function in common.filters that takes a list
    of things to keep, but that would require implementing an anti-bitmap
    filter, which would be hard, and which we do not need here.  So that is
    why this function is just a local hack.)
    
    This lets 291 pass with qcow2 options like refcount_bits or data_file
    again.
    
    Fixes: 14f16bf
           ("qemu-img: Support bitmap --merge into backing image")
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    XanClic committed Oct 27, 2020
    Copy the full SHA
    bd57133 View commit details
    Browse the repository at this point in the history
  23. block: End quiescent sections when a BDS is deleted

    If a BDS gets deleted during blk_drain_all(), it might miss a
    call to bdrv_do_drained_end(). This means missing a call to
    aio_enable_external() and the AIO context remains disabled for
    ever. This can cause a device to become irresponsive and to
    disrupt the guest execution, ie. hang, loop forever or worse.
    
    This scenario is quite easy to encounter with virtio-scsi
    on POWER when punching multiple blockdev-create QMP commands
    while the guest is booting and it is still running the SLOF
    firmware. This happens because SLOF disables/re-enables PCI
    devices multiple times via IO/MEM/MASTER bits of PCI_COMMAND
    register after the initial probe/feature negotiation, as it
    tends to work with a single device at a time at various stages
    like probing and running block/network bootloaders without
    doing a full reset in-between. This naturally generates many
    dataplane stops and starts, and thus many drain sections that
    can race with blockdev_create_run(). In the end, SLOF bails
    out.
    
    It is somehow reproducible on x86 but it requires to generate
    articial dataplane start/stop activity with stop/cont QMP
    commands. In this case, seabios ends up looping for ever,
    waiting for the virtio-scsi device to send a response to
    a command it never received.
    
    Add a helper that pairs all previously called bdrv_do_drained_begin()
    with a bdrv_do_drained_end() and call it from bdrv_close().
    While at it, update the "/bdrv-drain/graph-change/drain_all"
    test in test-bdrv-drain so that it can catch the issue.
    
    BugId: https://bugzilla.redhat.com/show_bug.cgi?id=1874441
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Message-Id: <160346526998.272601.9045392804399803158.stgit@bahia.lan>
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    gkurz authored and XanClic committed Oct 27, 2020
    Copy the full SHA
    495bed2 View commit details
    Browse the repository at this point in the history
  24. qcow2: Skip copy-on-write when allocating a zero cluster

    Since commit c8bb23c when a write
    request results in a new allocation QEMU first tries to see if the
    rest of the cluster outside the written area contains only zeroes.
    
    In that case, instead of doing a normal copy-on-write operation and
    writing explicit zero buffers to disk, the code zeroes the whole
    cluster efficiently using pwrite_zeroes() with BDRV_REQ_NO_FALLBACK.
    
    This improves performance very significantly but it only happens when
    we are writing to an area that was completely unallocated before. Zero
    clusters (QCOW2_CLUSTER_ZERO_*) are treated like normal clusters and
    are therefore slower to allocate.
    
    This happens because the code uses bdrv_is_allocated_above() rather
    bdrv_block_status_above(). The former is not as accurate for this
    purpose but it is faster. However in the case of qcow2 the underlying
    call does already report zero clusters just fine so there is no reason
    why we cannot use that information.
    
    After testing 4KB writes on an image that only contains zero clusters
    this patch results in almost five times more IOPS.
    
    Signed-off-by: Alberto Garcia <berto@igalia.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Message-Id: <6d77cab968c501c44d6e1089b9bc91b04170b49e.1603731354.git.berto@igalia.com>
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    bertogg authored and XanClic committed Oct 27, 2020
    Copy the full SHA
    e21d474 View commit details
    Browse the repository at this point in the history
  25. qcow2: Report BDRV_BLOCK_ZERO more accurately in bdrv_co_block_status()

    If a BlockDriverState supports backing files but has none then any
    unallocated area reads back as zeroes.
    
    bdrv_co_block_status() is only reporting this is if want_zero is true,
    but this is an inexpensive test and there is no reason not to do it in
    all cases.
    
    Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Signed-off-by: Alberto Garcia <berto@igalia.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Message-Id: <66fa0914a0e2b727ab6d1b63ca773d7cd29a9a9e.1603731354.git.berto@igalia.com>
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    bertogg authored and XanClic committed Oct 27, 2020
    Copy the full SHA
    ed6909b View commit details
    Browse the repository at this point in the history
  26. qemu-img: add support for rate limit in qemu-img convert

    add support for rate limit in qemu-img convert.
    
    Signed-off-by: Zhengui <lizhengui@huawei.com>
    Message-Id: <1603205264-17424-3-git-send-email-lizhengui@huawei.com>
    Reviewed-by: Alberto Garcia <berto@igalia.com>
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    lizhengui authored and XanClic committed Oct 27, 2020
    Copy the full SHA
    5d9fcc5 View commit details
    Browse the repository at this point in the history
  27. qemu-img: add support for rate limit in qemu-img commit

    add support for rate limit in qemu-img commit.
    
    Signed-off-by: Zhengui <lizhengui@huawei.com>
    Message-Id: <1603205264-17424-2-git-send-email-lizhengui@huawei.com>
    Reviewed-by: Alberto Garcia <berto@igalia.com>
    Signed-off-by: Kevin Wolf <kwolf@redhat.com>
    lizhengui authored and XanClic committed Oct 27, 2020
    Copy the full SHA
    1ad2b2a View commit details
    Browse the repository at this point in the history
  28. Merge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-virti…

    …ofs-20201026' into staging
    
    virtiofsd pull 2020-10-26
    
    Misono
       Set default log level to info
       Explicit build option for virtiofsd
    
    Me
       xattr name mapping
    
    Stefan
      Alternative chroot sandbox method
    
    Max
      Submount mechanism
    
    Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    
    # gpg: Signature made Mon 26 Oct 2020 18:41:36 GMT
    # gpg:                using RSA key 45F5C71B4A0CB7FB977A9FA90516331EBC5BFDE7
    # gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>" [full]
    # Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A  9FA9 0516 331E BC5B FDE7
    
    * remotes/dgilbert-gitlab/tags/pull-virtiofs-20201026:
      tests/acceptance: Add virtiofs_submounts.py
      tests/acceptance/boot_linux: Accept SSH pubkey
      virtiofsd: Announce sub-mount points
      virtiofsd: Store every lo_inode's parent_dev
      virtiofsd: Add fuse_reply_attr_with_flags()
      virtiofsd: Add attr_flags to fuse_entry_param
      virtiofsd: Announce FUSE_ATTR_FLAGS
      linux/fuse.h: Pull in from Linux
      tools/virtiofsd: xattr name mappings: Simple 'map'
      tools/virtiofsd: xattr name mapping examples
      tools/virtiofsd: xattr name mappings: Map server xattr names
      tools/virtiofsd: xattr name mappings: Map client xattr names
      tools/virtiofsd: xattr name mappings: Add option
      virtiofsd: add container-friendly -o sandbox=chroot option
      virtiofsd: passthrough_ll: set FUSE_LOG_INFO as default log_level
      configure: add option for virtiofsd
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Oct 27, 2020
    Copy the full SHA
    725ca33 View commit details
    Browse the repository at this point in the history
  29. Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/tracing-pu…

    …ll-request' into staging
    
    Pull request
    
    v2:
     * Fix Anthony Perard's email address [Philippe]
    
    # gpg: Signature made Mon 26 Oct 2020 17:04:57 GMT
    # gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
    # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [full]
    # gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>" [full]
    # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8
    
    * remotes/stefanha-gitlab/tags/tracing-pull-request:
      Add execute bit back to scripts/tracetool.py
      trace/simple: Enable tracing on startup only if the user specifies a trace option
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Oct 27, 2020
    Copy the full SHA
    4a74626 View commit details
    Browse the repository at this point in the history
  30. Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20…

    …201026a' into staging
    
    migration pull: 2020-10-26
    
    Another go at Peter's postcopy fixes
    
    Cleanups from Bihong Yu and Peter Maydell.
    
    Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    
    # gpg: Signature made Mon 26 Oct 2020 16:17:03 GMT
    # gpg:                using RSA key 45F5C71B4A0CB7FB977A9FA90516331EBC5BFDE7
    # gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>" [full]
    # Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A  9FA9 0516 331E BC5B FDE7
    
    * remotes/dgilbert/tags/pull-migration-20201026a:
      migration-test: Only hide error if !QTEST_LOG
      migration/postcopy: Release fd before going into 'postcopy-pause'
      migration: Sync requested pages after postcopy recovery
      migration: Maintain postcopy faulted addresses
      migration: Introduce migrate_send_rp_message_req_pages()
      migration: Pass incoming state into qemu_ufd_copy_ioctl()
      migration: using trace_ to replace DPRINTF
      migration: Delete redundant spaces
      migration: Open brace '{' following function declarations go on the next line
      migration: Do not initialise statics and globals to 0 or NULL
      migration: Add braces {} for if statement
      migration: Open brace '{' following struct go on the same line
      migration: Add spaces around operator
      migration: Don't use '#' flag of printf format
      migration: Do not use C99 // comments
      migration: Drop unused VMSTATE_FLOAT64 support
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Oct 27, 2020
    Copy the full SHA
    d55450d View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2020

  1. Merge remote-tracking branch 'remotes/ericb/tags/pull-bitmaps-2020-10…

    …-26' into staging
    
    bitmaps patches for 2020-10-26
    
    - fix infloop on large bitmap granularity
    - silence compiler warning
    
    # gpg: Signature made Mon 26 Oct 2020 11:56:54 GMT
    # gpg:                using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A
    # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
    # gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
    # gpg:                 aka "[jpeg image of size 6874]" [full]
    # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A
    
    * remotes/ericb/tags/pull-bitmaps-2020-10-26:
      migration/block-dirty-bitmap: fix uninitialized variable warning
      migration/block-dirty-bitmap: fix larger granularity bitmaps
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Oct 26, 2020
    Copy the full SHA
    091e3e3 View commit details
    Browse the repository at this point in the history
  2. tests/acceptance: Add virtiofs_submounts.py

    This test invokes several shell scripts to create a random directory
    tree full of submounts, and then check in the VM whether every submount
    has its own ID and the structure looks as expected.
    
    (Note that the test scripts must be non-executable, so Avocado will not
    try to execute them as if they were tests on their own, too.)
    
    Because at this commit's date it is unlikely that the Linux kernel on
    the image provided by boot_linux.py supports submounts in virtio-fs, the
    test will be cancelled if no custom Linux binary is provided through the
    vmlinuz parameter.  (The on-image kernel can be used by providing an
    empty string via vmlinuz=.)
    
    So, invoking the test can be done as follows:
    $ avocado run \
        tests/acceptance/virtiofs_submounts.py \
        -p vmlinuz=/path/to/linux/build/arch/x86/boot/bzImage
    
    This test requires root privileges (through passwordless sudo -n),
    because at this point, virtiofsd requires them.  (If you have a
    timestamp_timeout period for sudoers (e.g. the default of 5 min), you
    can provide this by executing something like "sudo true" before invoking
    Avocado.)
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Message-Id: <20200909184028.262297-9-mreitz@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    XanClic authored and dagrh committed Oct 26, 2020
    Copy the full SHA
    c93a656 View commit details
    Browse the repository at this point in the history
  3. tests/acceptance/boot_linux: Accept SSH pubkey

    Let download_cloudinit() take an optional pubkey, which subclasses of
    BootLinux can pass through setUp().
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Message-Id: <20200909184028.262297-8-mreitz@redhat.com>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: WIllian Rampazzo <willianr@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    XanClic authored and dagrh committed Oct 26, 2020
    Copy the full SHA
    45ced7c View commit details
    Browse the repository at this point in the history
  4. virtiofsd: Announce sub-mount points

    Whenever we encounter a directory with an st_dev that differs from that
    of its parent, we set the FUSE_ATTR_SUBMOUNT flag so the guest can
    create a submount for it.
    
    Make this behavior optional, so submounts are only announced to the
    guest with the announce_submounts option.  Some users may prefer the
    current behavior, so that the guest learns nothing about the host mount
    structure.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Message-Id: <20200909184028.262297-7-mreitz@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
      Manual merge
    XanClic authored and dagrh committed Oct 26, 2020
    Copy the full SHA
    08dce38 View commit details
    Browse the repository at this point in the history
  5. virtiofsd: Store every lo_inode's parent_dev

    We want to detect mount points in the shared tree.  We report them to
    the guest by setting the FUSE_ATTR_SUBMOUNT flag in fuse_attr.flags, but
    because the FUSE client will create a submount for every directory that
    has this flag set, we must do this only for the actual mount points.
    
    We can detect mount points by comparing a directory's st_dev with its
    parent's st_dev.  To be able to do so, we need to store the parent's
    st_dev in the lo_inode object.
    
    Note that mount points need not necessarily be directories; a single
    file can be a mount point as well.  However, for the sake of simplicity
    let us ignore any non-directory mount points for now.
    
    Signed-off-by: Max Reitz <mreitz@redhat.com>
    Message-Id: <20200909184028.262297-6-mreitz@redhat.com>
    Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
    XanClic authored and dagrh committed Oct 26, 2020
    Copy the full SHA
    eba8b09 View commit details
    Browse the repository at this point in the history
Older