X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_guts.c;h=a1782e7a5177a4293058bc7061e5c46206521887;hp=c01f00c8b6b37239d9562a6bbf8461d486ce8308;hb=dadd2bbe7500ebd8c99868992483aaf7e59d55be;hpb=107910497be0a0d0e4a8ab357c403fc2a234323b diff --git a/yaffs_guts.c b/yaffs_guts.c index c01f00c..a1782e7 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -2223,6 +2223,7 @@ static int yaffs_GarbageCollectBlock(yaffs_Device *dev, int block, * We have to decrement free chunks so this works out properly. */ dev->nFreeChunks--; + bi->softDeletions--; object->nDataChunks--; @@ -4189,6 +4190,9 @@ static void yaffs_StripDeletedObjects(yaffs_Device *dev) struct ylist_head *n; yaffs_Object *l; + if (dev->readOnly) + return; + /* Soft delete all the unlinked files */ ylist_for_each_safe(i, n, &dev->unlinkedDir->variant.directoryVariant.children) { @@ -4242,6 +4246,8 @@ static void yaffs_FixHangingObjects(yaffs_Device *dev) int depthLimit; int hanging; + if (dev->readOnly) + return; /* Iterate through the objects in each hash entry, * looking at each object.