X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fmtd%2Fmtdblock.c;h=6c6d80736fadfb4013871b31795e17354a4d671e;hb=20abd1634a6e2eedb84ca977adea56b8aa06cc3e;hp=af6591237b9b51f22022e61a653fa7a5d8e29845;hpb=16c0cfa425b8e1488f7a1873bd112a7a099325f0;p=~andy%2Flinux diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c index af6591237b9..6c6d80736fa 100644 --- a/drivers/mtd/mtdblock.c +++ b/drivers/mtd/mtdblock.c @@ -321,8 +321,12 @@ static int mtdblock_release(struct mtd_blktrans_dev *mbd) mutex_unlock(&mtdblk->cache_mutex); if (!--mtdblk->count) { - /* It was the last usage. Free the cache */ - mtd_sync(mbd->mtd); + /* + * It was the last usage. Free the cache, but only sync if + * opened for writing. + */ + if (mbd->file_mode & FMODE_WRITE) + mtd_sync(mbd->mtd); vfree(mtdblk->cache_data); }