comparison yaffs_guts.c @ 393:b5e0ebc1e8e5

Re-enable soft delete for yaffs1 mode. Soft deletion was disabled because it messed up yaffs2 mode. Soft deletion is not very valuable for yaffs2 mode, but has been re-enabled for yaffs1 mode where it is far more value. Also added a parameter to disable soft delete. Signed-off-by: Charles Manning <cdhmanning@gmail.com>
author Charles Manning <cdhmanning@gmail.com>
date Fri, 19 Mar 2010 16:45:49 +1300
parents 36569f389824
children bedc7047de18
comparison
equal deleted inserted replaced
392:37c92ae29f6e 393:b5e0ebc1e8e5
5476 static int yaffs_UnlinkFileIfNeeded(yaffs_Object *in) 5476 static int yaffs_UnlinkFileIfNeeded(yaffs_Object *in)
5477 { 5477 {
5478 5478
5479 int retVal; 5479 int retVal;
5480 int immediateDeletion = 0; 5480 int immediateDeletion = 0;
5481 yaffs_Device *dev = in->myDev;
5481 5482
5482 if (!in->myInode) 5483 if (!in->myInode)
5483 immediateDeletion = 1; 5484 immediateDeletion = 1;
5484 5485
5485 if (immediateDeletion) { 5486 if (immediateDeletion) {
5489 T(YAFFS_TRACE_TRACING, 5490 T(YAFFS_TRACE_TRACING,
5490 (TSTR("yaffs: immediate deletion of file %d" TENDSTR), 5491 (TSTR("yaffs: immediate deletion of file %d" TENDSTR),
5491 in->objectId)); 5492 in->objectId));
5492 in->deleted = 1; 5493 in->deleted = 1;
5493 in->myDev->nDeletedFiles++; 5494 in->myDev->nDeletedFiles++;
5494 if (1 || in->myDev->param.isYaffs2) 5495 if (dev->param.disableSoftDelete || dev->param.isYaffs2)
5495 yaffs_ResizeFile(in, 0); 5496 yaffs_ResizeFile(in, 0);
5496 yaffs_SoftDeleteFile(in); 5497 yaffs_SoftDeleteFile(in);
5497 } else { 5498 } else {
5498 retVal = 5499 retVal =
5499 yaffs_ChangeObjectName(in, in->myDev->unlinkedDir, 5500 yaffs_ChangeObjectName(in, in->myDev->unlinkedDir,
5506 5507
5507 int yaffs_DeleteFile(yaffs_Object *in) 5508 int yaffs_DeleteFile(yaffs_Object *in)
5508 { 5509 {
5509 int retVal = YAFFS_OK; 5510 int retVal = YAFFS_OK;
5510 int deleted = in->deleted; 5511 int deleted = in->deleted;
5511 5512 yaffs_Device *dev = in->myDev;
5512 yaffs_ResizeFile(in, 0); 5513
5514 if (dev->param.disableSoftDelete || dev->param.isYaffs2)
5515 yaffs_ResizeFile(in, 0);
5513 5516
5514 if (in->nDataChunks > 0) { 5517 if (in->nDataChunks > 0) {
5515 /* Use soft deletion if there is data in the file. 5518 /* Use soft deletion if there is data in the file.
5516 * That won't be the case if it has been resized to zero. 5519 * That won't be the case if it has been resized to zero.
5517 */ 5520 */