Mercurial > yaffs-ecoscentric-gpl
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 */ |
