Changeset 20341
- Timestamp:
- Oct 22, 2008, 9:44:43 PM (18 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
-
Nebulous/nebclient/src/nebclient.c (modified) (3 diffs)
-
Nebulous/nebclient/src/nebclient.h (modified) (2 diffs)
-
psModules/src/config/pmConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous/nebclient/src/nebclient.c
r20209 r20341 4 4 * Copyright (C) 2005 Joshua Hoblitt 5 5 * 6 * $Id: nebclient.c,v 1.5 2 2008-10-16 23:53:01 jhoblittExp $6 * $Id: nebclient.c,v 1.53 2008-10-23 07:44:43 bills Exp $ 7 7 */ 8 8 … … 247 247 248 248 locations = nebFindInstances(server, key, NULL); 249 if (!locations ) {249 if (!locations || locations->n <= 1) { 250 250 nebSetErr(server, "can not cull - not enough instances"); 251 251 … … 260 260 261 261 nebObjectInstancesFree(locations); 262 263 return true; 264 } 265 266 bool nebCullAllButOne(nebServer *server, const char *key) 267 { 268 while (nebCull(server, key)) { 269 ; 270 } 262 271 263 272 return true; -
trunk/Nebulous/nebclient/src/nebclient.h
r20209 r20341 4 4 * Copyright (C) 2005 Joshua Hoblitt 5 5 * 6 * $Id: nebclient.h,v 1.3 4 2008-10-16 23:53:01 jhoblittExp $6 * $Id: nebclient.h,v 1.35 2008-10-23 07:44:43 bills Exp $ 7 7 */ 8 8 … … 120 120 ); 121 121 122 /** Removes all but one instance from a storage object 123 * 124 * @return true on success 125 */ 126 127 bool nebCullAllButOne( 128 nebServer *server, ///< nebServer object 129 const char *key ///< storage object key (name) 130 ); 131 122 132 /** Trys to acquire a lock on a storage object 123 133 * -
trunk/psModules/src/config/pmConfig.c
r20260 r20341 1604 1604 nebServer *server = nebServerAlloc(neb_server); 1605 1605 if (!server) { 1606 psError(PM_ERR_SYS, true, "failed to create a nebServer object: %s", nebErr(server)); 1607 nebServerFree(server); 1606 psError(PM_ERR_SYS, true, "failed to create a nebServer object."); 1608 1607 return NULL; 1609 1608 } … … 1626 1625 return NULL; 1627 1626 } 1627 } else if (create || trunc) { 1628 // object exists and it looks like the caller intends to write to it 1629 // delete all but one instance 1630 if (!nebCullAllButOne(server,filename)) { 1631 psError(PM_ERR_SYS, true, "failed to cull instances of existing nebulous file: %s\n%s", 1632 filename, nebErr(server)); 1633 return NULL; 1634 } 1635 // we don't know which instances got culled so get the instance again 1636 if (!(nebfile = nebFind(server, filename))) { 1637 psError(PM_ERR_SYS, true, "failed to find instance of existing nebulous file: %s\n%s", 1638 filename, nebErr(server)); 1639 return NULL; 1640 } 1628 1641 } 1629 1642
Note:
See TracChangeset
for help on using the changeset viewer.
