X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_guts.c;h=9509dd401a33e5e9eb0a6989f74f733b1cc33d61;hp=d55aa95b91e450758bf54474e047f7766100515f;hb=401f9eb48ce20b18902ad9a4a8039d43e363d2ec;hpb=e0f1d0213364d12d512b044afd637d3761d31bdc diff --git a/yaffs_guts.c b/yaffs_guts.c index d55aa95..9509dd4 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -5624,7 +5624,7 @@ static int yaffs_UnlinkFileIfNeeded(yaffs_Object *in) int yaffs_DeleteFile(yaffs_Object *in) { int retVal = YAFFS_OK; - int deleted = in->deleted; + int deleted; /* Need to cache value on stack if in is freed */ yaffs_Device *dev = in->myDev; if (dev->param.disableSoftDelete || dev->param.isYaffs2) @@ -5637,6 +5637,8 @@ int yaffs_DeleteFile(yaffs_Object *in) if (!in->unlinked) retVal = yaffs_UnlinkFileIfNeeded(in); + deleted = in->deleted; + if (retVal == YAFFS_OK && in->unlinked && !in->deleted) { in->deleted = 1; deleted = 1;