示例#1
0
static void
on_create_logical_volume (StorageDaemon *daemon,
                          StorageLogicalVolume *volume,
                          gpointer user_data)
{
  CompleteClosure *complete = user_data;

  if (g_str_equal (storage_logical_volume_get_name (volume), complete->wait_name) &&
      storage_logical_volume_get_volume_group (volume) == STORAGE_VOLUME_GROUP (complete->wait_thing))
    {
      /* All creates have the same signature */
      lvm_volume_group_complete_create_plain_volume (NULL, complete->invocation,
                                                     storage_logical_volume_get_object_path (volume));
      g_signal_handler_disconnect (daemon, complete->wait_sig);
    }
}
示例#2
0
文件: block.c 项目: mvollmer/storaged
void
storage_block_update_lv (StorageBlock *self,
                         StorageLogicalVolume *lv)
{
  const gchar *logical_volume_path;
  StorageDaemon *daemon;

  g_return_if_fail (STORAGE_IS_BLOCK (self));

  daemon = storage_daemon_get ();

  if (lv == NULL)
    {
      if (self->iface_logical_volume)
        {
          storage_daemon_unpublish (daemon, storage_block_get_object_path (self), self->iface_logical_volume);
          g_object_unref (self->iface_logical_volume);
          self->iface_logical_volume = NULL;
        }
    }
  else
    {
      logical_volume_path = storage_logical_volume_get_object_path (lv);
      if (self->iface_logical_volume)
        {
          lvm_logical_volume_block_set_logical_volume (self->iface_logical_volume,
                                                       logical_volume_path);
        }
      else
        {
          self->iface_logical_volume = lvm_logical_volume_block_skeleton_new ();
          lvm_logical_volume_block_set_logical_volume (self->iface_logical_volume,
                                                       logical_volume_path);
          storage_daemon_publish (daemon, storage_block_get_object_path (self), FALSE, self->iface_logical_volume);
        }
    }
}