[multipathd] DM configuration ground work #2
authorChristophe Varoqui <root@xa-s05.(none)>
Mon, 21 Nov 2005 16:25:25 +0000 (17:25 +0100)
committerChristophe Varoqui <root@xa-s05.(none)>
Mon, 21 Nov 2005 16:25:25 +0000 (17:25 +0100)
commit296439d80ce3820635fe2e62b472c2725cb66f79
tree504c24631d8d1f7d260f066ec47c33ccd151b37a
parentebbf87db355c4994b2667a01fcafcee530108255
[multipathd] DM configuration ground work #2

This patch enables DM configuration at multipathd startup.

To achieve that simple goal, the following steps were necessary :

- new libmultipath/structs_vec.[ch] exporting high level method working
  on [vectored] {path,multipath} structs :
- set_no_path_retry
- adopt_paths
- orphan_paths
- orphan_path
- verify_paths
- update_mpp_paths
- setup_multipath
- update_multipath_strings
- remove_map
- stop_waiter_thread_func *stop_waiter, int purge_vec);
- remove_maps
- add_map_without_path
- add_map_with_path
- teach coalesce_path() to use add_map_with_path() and verify_paths()
- add a configure() function to the daemon
- teach multipathd to coalesce its map vector after configuration
- multipathd/main.c:reconfigure() restarts the configuration process

Fixed 2 bugs in the implementation from Edward Goggin :

- set mpp wwid before the binded alias lookup so that friendly names
  work
- allocate a mpp->paths in adopt_paths() when mpp->pg is NULL and we
  must store a path there

And fixed one long standing careless bug in all structs.c:find_*().
Being passed a NULL vector shortcuts the lookups now.
libmultipath/Makefile
libmultipath/configure.c
libmultipath/configure.h
libmultipath/print.c
libmultipath/structs.c
libmultipath/structs_vec.c [new file with mode: 0644]
libmultipath/structs_vec.h [new file with mode: 0644]
multipath/main.c
multipathd/cli_handlers.c
multipathd/main.c
multipathd/main.h