libxl, hotplug/Linux: default to phy backend for raw format file

Modify libxl to allow raw format file to use phy backend.

For the hotplug script part, learn from NetBSD's block hotplug script --
test the path and determine the actual type of file (block device or
regular file) then use the actual type to determine which branch to run.

With these changes, plus the current ordering of backend preference
(phy > qdisk > tap), we will use phy backend for raw format file by
default.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Wei Liu authored and Ian Jackson committed 2013-09-13 11:09:21 +01:00
1 parent cadbe2f9e7
commit 11a63a1660
2 files changed
+12 -10

No files matched your search

+9 -7
View File
@@ -206,6 +206,13 @@ and so cannot be mounted ${m2}${when}."
t=$(xenstore_read_default "$XENBUS_PATH/type" 'MISSING')
p=$(xenstore_read "$XENBUS_PATH/params")
mode=$(xenstore_read "$XENBUS_PATH/mode")
if [ -b "$p" ]; then
truetype="phy"
elif [ -f "$p" ]; then
truetype="file"
fi
case "$command" in
add)
@@ -217,16 +224,11 @@ case "$command" in
exit 0
fi
if [ -n "$t" ]
then
p=$(xenstore_read "$XENBUS_PATH/params")
mode=$(xenstore_read "$XENBUS_PATH/mode")
fi
FRONTEND_ID=$(xenstore_read "$XENBUS_PATH/frontend-id")
FRONTEND_UUID=$(xenstore_read_default \
"/local/domain/$FRONTEND_ID/vm" 'unknown')
case $t in
case $truetype in
phy)
dev=$(expand_dev $p)
@@ -319,7 +321,7 @@ mount it read-write in a guest domain."
;;
remove)
case $t in
case $truetype in
phy)
exit 0
;;
+3 -3
View File
@@ -19,11 +19,11 @@
int libxl__try_phy_backend(mode_t st_mode)
{
if (!S_ISBLK(st_mode)) {
return 0;
if (S_ISBLK(st_mode) || S_ISREG(st_mode)) {
return 1;
}
return 1;
return 0;
}
#define EXT_SHIFT 28
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.