X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fyaffsfs.c;h=d1e4e4efa76185ade34bffeef842c6044e53fca6;hp=af8c82bf03e5466b0815aa8b987d1e1a2f381d5e;hb=334eb5fc4472c791e4c4ce6d50e650d2b2732f02;hpb=1d642a6bacba667d53d3bba29d77c7bd7c956681 diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index af8c82b..d1e4e4e 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -3050,6 +3050,7 @@ int yaffs_remount_common(struct yaffs_dev *dev, const YCHAR *path, int force, int read_only) { int retVal = -1; + int was_read_only; if (yaffsfs_CheckMemRegion(path, 0, 0) < 0) { yaffsfs_SetError(-EFAULT); @@ -3072,7 +3073,11 @@ int yaffs_remount_common(struct yaffs_dev *dev, const YCHAR *path, if (force || !yaffsfs_IsDevBusy(dev)) { if (read_only) yaffs_checkpoint_save(dev); + was_read_only = dev->read_only; dev->read_only = read_only ? 1 : 0; + if (was_read_only && !read_only) { + yaffs_guts_cleanup(dev); + } retVal = 0; } else yaffsfs_SetError(-EBUSY);