*/
const char *yaffs_guts_c_version =
- "$Id: yaffs_guts.c,v 1.24 2005-12-07 21:49:18 charles Exp $";
+ "$Id: yaffs_guts.c,v 1.27 2005-12-20 04:02:18 charles Exp $";
#include "yportenv.h"
int tnodeSize;
yaffs_Tnode *newTnodes;
__u8 *mem;
- yaffs_Tnode *current;
+ yaffs_Tnode *curr;
yaffs_Tnode *next;
yaffs_TnodeList *tnl;
/* make these things */
- mem = newTnodes = YMALLOC(nTnodes * tnodeSize);
+ newTnodes = YMALLOC(nTnodes * tnodeSize);
+ mem = (__u8 *)newTnodes;
if (!newTnodes) {
T(YAFFS_TRACE_ERROR,
#else
/* New hookup for wide tnodes */
for(i = 0; i < nTnodes -1; i++) {
- current = (yaffs_Tnode *) &mem[i * tnodeSize];
+ curr = (yaffs_Tnode *) &mem[i * tnodeSize];
next = (yaffs_Tnode *) &mem[(i+1) * tnodeSize];
- current->internal[0] = next;
+ curr->internal[0] = next;
}
- current = (yaffs_Tnode *) &mem[(nTnodes - 1) * tnodeSize];
- current->internal[0] = dev->freeTnodes;
+ curr = (yaffs_Tnode *) &mem[(nTnodes - 1) * tnodeSize];
+ curr->internal[0] = dev->freeTnodes;
dev->freeTnodes = (yaffs_Tnode *)mem;
#endif
yaffs_Object *in;
yaffs_Object *parent;
int nBlocks = dev->internalEndBlock - dev->internalStartBlock + 1;
-
+ int itsUnlinked;
__u8 *chunkData;
yaffs_BlockIndex *blockIndex = NULL;
yaffs_AddObjectToDirectory(parent, in);
- if ((parent == dev->deletedDir ||
- parent == dev->unlinkedDir)) {
- /* If it is unlinked at start up then it wants deleting */
- in->deleted = 1;
- }
+ itsUnlinked = (parent == dev->deletedDir) ||
+ (parent == dev->unlinkedDir);
if (oh->isShrink) {
/* Mark the block as having a shrinkHeader */
break;
case YAFFS_OBJECT_TYPE_HARDLINK:
- in->variant.hardLinkVariant.equivalentObjectId =
+ if(!itsUnlinked) {
+ in->variant.hardLinkVariant.equivalentObjectId =
oh->equivalentObjectId;
- in->hardLinks.next =
+ in->hardLinks.next =
(struct list_head *) hardList;
- hardList = in;
+ hardList = in;
+ }
break;
case YAFFS_OBJECT_TYPE_DIRECTORY:
/* Do nothing */