Changeset 793 for Whitix/branches
- Timestamp:
- 07/13/08 20:49:03 (5 months ago)
- Files:
-
- 1 modified
-
Whitix/branches/fs/fs/vfs/super.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Whitix/branches/fs/fs/vfs/super.c
r701 r793 166 166 superBlock->parent=mountNode->superBlock; 167 167 mountNode->mountNode=superBlock->mount; 168 ++mountNode->refs;169 168 superBlock->mount->refs+=2; 170 169 … … 240 239 struct VNode* vNode; 241 240 242 ListForEachEntry(vNode,&superBlock->vNodeList,next) 241 ListForEachEntry(vNode, &superBlock->vNodeList, next) 242 { 243 243 /* Only the superblock's 'root' is allowed to have a reference */ 244 244 if (vNode->refs && vNode != superBlock->mount) 245 245 return -EBUSY; 246 } 246 247 247 248 return 0; … … 278 279 279 280 coveredNode->mountNode=NULL; 281 280 282 VNodeRelease(coveredNode); 281 283 VNodeRelease(coveredNode); /* Reference from the mount node needs to be freed. */ 284 282 285 VNodeRelease(superBlock->mount); 283 286 … … 417 420 or it may have no vNodes except the mount vNode (in it's ReadSuper) */ 418 421 419 if (superBlock->privData) 422 if (superBlock->sbOps->freeSuper) 423 { 424 superBlock->sbOps->freeSuper(superBlock); 425 }else if (superBlock->privData) 420 426 free(superBlock->privData); 421 427