----- Ursprüngliche Mail ----- > Von: "hch" <hch@xxxxxx> > Instead of propagating the fmode_t, just use a bool to track if a mtd > block device was opened for writing. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > drivers/mtd/mtd_blkdevs.c | 2 +- > drivers/mtd/mtdblock.c | 2 +- > include/linux/mtd/blktrans.h | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c > index f0bb09fde95e3a..bd0b7545364349 100644 > --- a/drivers/mtd/mtd_blkdevs.c > +++ b/drivers/mtd/mtd_blkdevs.c > @@ -208,7 +208,7 @@ static int blktrans_open(struct gendisk *disk, fmode_t mode) > ret = __get_mtd_device(dev->mtd); > if (ret) > goto error_release; > - dev->file_mode = mode; > + dev->writable = mode & FMODE_WRITE; > > unlock: > dev->open++; > diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c > index a0a1194dc1d902..fa476fb4dffb6c 100644 > --- a/drivers/mtd/mtdblock.c > +++ b/drivers/mtd/mtdblock.c > @@ -294,7 +294,7 @@ static void mtdblock_release(struct mtd_blktrans_dev *mbd) > * It was the last usage. Free the cache, but only sync if > * opened for writing. > */ > - if (mbd->file_mode & FMODE_WRITE) > + if (mbd->writable) > mtd_sync(mbd->mtd); > vfree(mtdblk->cache_data); > } > diff --git a/include/linux/mtd/blktrans.h b/include/linux/mtd/blktrans.h > index 15cc9b95e32b52..6e471436bba556 100644 > --- a/include/linux/mtd/blktrans.h > +++ b/include/linux/mtd/blktrans.h > @@ -34,7 +34,7 @@ struct mtd_blktrans_dev { > struct blk_mq_tag_set *tag_set; > spinlock_t queue_lock; > void *priv; > - fmode_t file_mode; > + bool writable; > }; Acked-by: Richard Weinberger <richard@xxxxxx> Thanks, //richard