X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=direct%2Fyaffsfs.c;h=d1e4e4efa76185ade34bffeef842c6044e53fca6;hb=5101bff53a59d4cd54da0b4cde0cc32208b22d64;hp=8593cbe72d82bb1745396c43fdf5f8a3873009d0;hpb=5e0db4930940ade57ea3bf3dce0d3db0362a9f0e;p=yaffs2.git diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index 8593cbe..d1e4e4e 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -1,8 +1,7 @@ /* * YAFFS: Yet Another Flash File System. A NAND-flash specific file system. * - * Copyright (C) 2002-2011 Aleph One Ltd. - * for Toby Churchill Ltd and Brightstar Engineering + * Copyright (C) 2002-2018 Aleph One Ltd. * * Created by Charles Manning * @@ -3051,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); @@ -3073,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);