diff options
Diffstat (limited to 'drivers/mtd/mtdblock.c')
-rw-r--r-- | drivers/mtd/mtdblock.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c index af6591237b9b..6c6d80736fad 100644 --- a/drivers/mtd/mtdblock.c +++ b/drivers/mtd/mtdblock.c | |||
@@ -321,8 +321,12 @@ static int mtdblock_release(struct mtd_blktrans_dev *mbd) | |||
321 | mutex_unlock(&mtdblk->cache_mutex); | 321 | mutex_unlock(&mtdblk->cache_mutex); |
322 | 322 | ||
323 | if (!--mtdblk->count) { | 323 | if (!--mtdblk->count) { |
324 | /* It was the last usage. Free the cache */ | 324 | /* |
325 | mtd_sync(mbd->mtd); | 325 | * It was the last usage. Free the cache, but only sync if |
326 | * opened for writing. | ||
327 | */ | ||
328 | if (mbd->file_mode & FMODE_WRITE) | ||
329 | mtd_sync(mbd->mtd); | ||
326 | vfree(mtdblk->cache_data); | 330 | vfree(mtdblk->cache_data); |
327 | } | 331 | } |
328 | 332 | ||