/*
- * $Id: fat.c,v 1.31 2001/10/03 18:23:02 hbirr Exp $
+ * $Id: fat.c,v 1.32 2001/10/07 08:58:29 hbirr Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
}
}
}
- if (*((PULONG)(BaseAddress + ((FatStart + i) % ChunkSize))) & 0x0fffffff == 0)
+ if ((*((PULONG)(BaseAddress + ((FatStart + i) % ChunkSize))) & 0x0fffffff) == 0)
{
- DPRINT("Found available cluster 0x%x\n", i);
+ DPRINT("Found available cluster 0x%x\n", i / 4);
*Cluster = i / 4;
CcRosReleaseCacheSegment(DeviceExt->StorageBcb, CacheSeg, TRUE);
return(STATUS_SUCCESS);
// DPRINT ("GetNextCluster(DeviceExt %x, CurrentCluster %x)\n",
// DeviceExt, CurrentCluster);
- if (Extend)
+ if (!Extend)
{
ExAcquireResourceSharedLite(&DeviceExt->FatResource, TRUE);
}
Status = FAT16FindAvailableCluster(DeviceExt, &NewCluster);
if (!NT_SUCCESS(Status))
{
+ ExReleaseResourceLite(&DeviceExt->FatResource);
return(Status);
}
}
Status = FAT32FindAvailableCluster(DeviceExt, &NewCluster);
if (!NT_SUCCESS(Status))
{
+ ExReleaseResourceLite(&DeviceExt->FatResource);
return(Status);
}
}
Status = FAT12FindAvailableCluster(DeviceExt, &NewCluster);
if (!NT_SUCCESS(Status))
{
+ ExReleaseResourceLite(&DeviceExt->FatResource);
return(Status);
}
}
Status = FAT16FindAvailableCluster(DeviceExt, &NewCluster);
if (!NT_SUCCESS(Status))
{
+ ExReleaseResourceLite(&DeviceExt->FatResource);
return(Status);
}
}
Status = FAT32FindAvailableCluster(DeviceExt, &NewCluster);
if (!NT_SUCCESS(Status))
{
+ ExReleaseResourceLite(&DeviceExt->FatResource);
return(Status);
}
}
Status = FAT12FindAvailableCluster(DeviceExt, &NewCluster);
if (!NT_SUCCESS(Status))
{
+ ExReleaseResourceLite(&DeviceExt->FatResource);
return(Status);
}
}