|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] hotplug: Restore block-tap phy compatibility
From: Jason Andryuk <jason.andryuk@xxxxxxx>
From: Jason Andryuk <jason.andryuk@xxxxxxx>
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.
Signed-off-by: Jason Andryuk <jason.andryuk@xxxxxxx>
---
This is tested with tapback, but untested with phy/blkback since I don't
have the kernel module setup.
tools/hotplug/Linux/block-tap | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/tools/hotplug/Linux/block-tap b/tools/hotplug/Linux/block-tap
index 126e472786..8661ce77e3 100755
--- a/tools/hotplug/Linux/block-tap
+++ b/tools/hotplug/Linux/block-tap
@@ -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"
@@ -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"
}
--
2.40.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |