X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fdevice-handler.c;h=c31fceaf5a11b1ac22c28f50ad530866f4b7f23e;hp=682a4e9ae865944d4acea0c62c5b9418ffe36227;hb=83a587b79e9a5a5279f1c7a26918fc8c08523a7f;hpb=297d2f0cc9c0a233fadf42dacc08708ad3909f77 diff --git a/discover/device-handler.c b/discover/device-handler.c index 682a4e9..c31fcea 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -1581,6 +1581,41 @@ void device_release_write(struct discover_device *dev, bool release) dev->mounted = true; } +void device_sync_snapshots(struct device_handler *handler, const char *device) +{ + struct discover_device *dev = NULL; + unsigned int i; + + if (device) { + /* Find matching device and sync */ + dev = device_lookup_by_name(handler, device); + if (!dev) { + pb_log("%s: device name '%s' unrecognised\n", + __func__, device); + return; + } + if (dev->ramdisk) + device_release_write(dev, true); + else + pb_log("%s has no snapshot to merge, skipping\n", + dev->device->id); + return; + } + + /* Otherwise sync all relevant devices */ + for (i = 0; i < handler->n_devices; i++) { + dev = handler->devices[i]; + if (dev->device->type != DEVICE_TYPE_DISK && + dev->device->type != DEVICE_TYPE_USB) + continue; + if (dev->ramdisk) + device_release_write(dev, true); + else + pb_log("%s has no snapshot to merge, skipping\n", + dev->device->id); + } +} + #else void device_handler_discover_context_commit( @@ -1628,4 +1663,10 @@ void device_release_write(struct discover_device *dev __attribute__((unused)), { } +void device_sync_snapshots( + struct device_handler *handler __attribute__((unused)), + const char *device __attribute__((unused))) +{ +} + #endif