Mercurial > yaffs-ecoscentric-gpl
changeset 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 | 37c92ae29f6e |
| children | bedc7047de18 0e4492050172 |
| files | yaffs_guts.c yaffs_guts.h |
| diffstat | 2 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -5478,6 +5478,7 @@ static int yaffs_UnlinkFileIfNeeded(yaff int retVal; int immediateDeletion = 0; + yaffs_Device *dev = in->myDev; if (!in->myInode) immediateDeletion = 1; @@ -5491,7 +5492,7 @@ static int yaffs_UnlinkFileIfNeeded(yaff in->objectId)); in->deleted = 1; in->myDev->nDeletedFiles++; - if (1 || in->myDev->param.isYaffs2) + if (dev->param.disableSoftDelete || dev->param.isYaffs2) yaffs_ResizeFile(in, 0); yaffs_SoftDeleteFile(in); } else { @@ -5508,8 +5509,10 @@ int yaffs_DeleteFile(yaffs_Object *in) { int retVal = YAFFS_OK; int deleted = in->deleted; - - yaffs_ResizeFile(in, 0); + yaffs_Device *dev = in->myDev; + + if (dev->param.disableSoftDelete || dev->param.isYaffs2) + yaffs_ResizeFile(in, 0); if (in->nDataChunks > 0) { /* Use soft deletion if there is data in the file.
--- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -606,6 +606,7 @@ struct yaffs_DeviceParamStruct { int useHeaderFileSize; /* Flag to determine if we should use file sizes from the header */ int disableLazyLoad; /* Disable lazy loading on this device */ int wideTnodesDisabled; /* Set to disable wide tnodes */ + int disableSoftDelete; /* yaffs 1 only: Set to disable the use of softdeletion. */ int deferDirectoryUpdate; /* Set to defer directory updates */
