From: Steve D. <ste...@us...> - 2006-11-01 23:17:58
|
Update of /cvsroot/evms/evms2/engine/engine In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv10649 Modified Files: internalAPI.c Log Message: EVMS registers the base name for the top working object of a volume if the object has its own device. However, EVMS engine fails to unregister such names when discarding volumes. This prevents some operation on volumes. The problem magnifies in cluster environments because rediscovery of CSM containers would fail to add volumes (discarded moments ago) back to the object tree, and the volumes would get deleted when committing changes. Rediscovery can be triggered by an operation as simple as changing the attributes of a CSM container. I added code to unregister the base name, and tested on my cluster. "Changju Gao" <CG...@no...> Index: internalAPI.c =================================================================== RCS file: /cvsroot/evms/evms2/engine/engine/internalAPI.c,v retrieving revision 1.153 retrieving revision 1.154 diff -u -d -r1.153 -r1.154 --- internalAPI.c 10 Oct 2005 14:44:41 -0000 1.153 +++ internalAPI.c 1 Nov 2006 23:17:52 -0000 1.154 @@ -2722,6 +2722,11 @@ if (rc == 0) { engine_unregister_name(vol->name); + if( vol->object->feature_header != NULL ) + { + engine_unregister_name(vol->name+EVMS_DEV_NODE_PATH_LEN); + } + /* * Clear out the volume pointer on this object and on all the child * objects in the tree. |