Skip to content

Commit

Permalink
hotplug: Restore block-tap phy compatibility
Browse files Browse the repository at this point in the history
backendtype=phy using the blktap kernel module needs to use write_dev,
but tapback can't support that.  tapback should perform better, but make
the script compatible with the old kernel module again.

Fixes: 76a4841 ("hotplug: Update block-tap")
Signed-off-by: Jason Andryuk <[email protected]>
Acked-by: Anthony PERARD <[email protected]>
Release-Acked-by: Oleksii Kurochko <[email protected]>
  • Loading branch information
Jason Andryuk authored and jbeulich committed Jun 20, 2024
1 parent 43d5c5d commit f16ac12
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions tools/hotplug/Linux/block-tap
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,13 @@
#
# Disks should be specified using the following syntax:
#
# For use with tapback (vbd3) (preferred):
# vdev=xvda,backendtype=tap,format=vhd,target=/srv/target.vhd
#
# format is either "aio" (for raw files), or "vhd"
# For use with blkback and the blktap2 kernel module:
# script=block-tap,vdev=xvda,target=<type>:<file>
#
# format/<type> is either "aio" (for raw files), or "vhd"

dir=$(dirname "$0")
. "$dir/block-common.sh"
Expand Down Expand Up @@ -205,12 +209,17 @@ add()

xenstore_write "$XENBUS_PATH/pid" "$pid"
xenstore_write "$XENBUS_PATH/minor" "$minor"
# dev, as a unix socket, would end up with major:minor 0:0 in
# physical-device if write_dev were used. tapback would be thrown off by
# that incorrect minor, so just skip writing physical-device.
xenstore_write "$XENBUS_PATH/physical-device-path" "$dev"

success
if [ "$XENBUS_TYPE" = "vbd3" ] ; then
# $dev, as a unix socket, has major:minor 0:0. If write_dev writes
# physical-device, tapback would use that incorrect minor 0. So don't
# write physical-device.
xenstore_write "$XENBUS_PATH/physical-device-path" "$dev"

success
else
write_dev "$dev"
fi

release_lock "block"
}
Expand Down

0 comments on commit f16ac12

Please sign in to comment.