I've changed this to only write "backend" (xenbus_backend.root) into
XENBUS_BASE_PATH. After appending XENBUS_TYPE (also exported) you can
construct the "base path" easily in the scripts. I've completely
removed writing XENBUS_FRONTEND_ID in favour of reading it from the
store at "$XENBUS_PATH/frontend-id".
Avoid re-reading the store over and over for the frontend domain's vm-path.
The patch also fixes a memory leak in backend_bus_id where we
leak the memory referenced by frontend if the function succeeds.
This work is by Christian Limpach.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
offsets within a memory page. Also fix, skb realloc-and-copy
when copying really is required (we were forgetting whether
the packet data is known valid, and checksumming packets that
do not have the csum field filled in).
Signed-off-by: Keir Fraser <keir@xensource.com>
the check, reading from the store rather than /sys, and checking whether the
VM for apparently-conflicting uses is actually the same (i.e. this is a
migration or a reboot in progress).
This fixes recent failures in 12_block_attach_shared_domU and recloses bug #331.
This fix includes particularly skanky path slicing inside xenbus_probe, which
it would be nice to remove very soon.
The loopback device check still suffers from the problem that filenames over
64 characters long are truncated.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
devices. If you export a device so the importing domain sees it as a
whole disk rather than a partition, then add_disk will try to probe
its partition table. However, we were calling add_disk before the
device was properly connected, and then not connecting it until
add_disk had finished. This meant that we ended up never actually
connecting the device, and any accesses to it would then hang.
Fix this by not calling add_disk until we're connected.
Signed-off-by: Steven Smith, sos22@cam.ac.uk
extensible flag fields in tx requests and rx responses, in
place of specific csum_blank/csum_valid bitfields.
Signed-off-by: Keir Fraser <keir@xensource.com>
separate fields. Update callers for new interface. Also
use int16_t as standard error code type on all public
interfaces.
Signed-off-by: Keir Fraser <keir@xensource.com>
interface defintions for future extensibility. In particular,
grant references are now 32 bits and this has some knock-on
effects on split-driver interfaces.
Signed-off-by: Keir Fraser <keir@xensource.com>
a device from two guests, or from dom 0 and a guest, can destroy the filesystem,
and this check prevents that. This should ensure that the xm tests
11_block_attach_shared_dom0 and 12_block_attach_shared_domU should pass.
Closes bug #331.
Devices may be shared only if all uses are read-only. If anyone has read-write
access to a device, then no sharing is allowed.
The mode in the config file may now have an exclamation mark appended, to
indicate that devices may be shared (i.e. that this new check should be
bypassed). This supports some network block devices, but is clearly dangerous
and should only be used when you know what you are doing.
The mode specified in the config file is now written explicitly to the store,
To implement this, the blkback driver has been changed to create two entries
in /sys describing each device in use. This means that we can determine which
devices are in use without crawling through the store.
The physical-device node has been changed to give the major and minor of the
device, separated by a colon. This means that we do not need to pack these
numbers into one, removing the restriction to 8 bit minors that we had in place
before.
The mode specified in the config file is now written explicitly to the store,
rather than using the presence or absence of a read-only node. This supports
the write-sharing override above.
If the device is in use, a new hotplug status of "busy" is written to the
store, and a message is written to a new hotplug-error node. Xend uses these
things for diagnosis.
The block scripts do not need to handle online or offline events, so this
support has been removed. These scripts can be called twice, depending upon
the hotplug config, so they now identify the second run and do not attempt to
set up the device again.
The device directories in the store are cleaned out before new details are
written there. This prevents stale information from messing up block device
hotplugging. This will be one cause of "blkback: changing physical device
not supported" messages.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
down the frontend until that number becomes 0. There are no reasonable
semantics for hot-unplugging a block device beneath a mounted filesystem, and
this solution ensures that the guest is not crashed nor the filesystem corruptedby the actions of the administrator.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
disappeared. This happens when the driver is being torn down, and we don't
want to resurrect the device directory in the store because of it.
Partially addresses bug #424.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
We need a hook to be able to close down the device properly, but the REMOVE
event is no good because we don't get the script and vif environment variables
set in that case.
Closes bug #417.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
from the calling domain, even on error (except for special
error GNTST_bad_page). This has a knock-on advantage of
simplifying Linux's netback driver.
Signed-off-by: Keir Fraser <keir@xensource.com>