It is possible to call fsync on a read-only handle (for example, fsck.ext2 does it when doing read-only check), and this call results in kernel warning. This bug was introduced by the commit 721c7fc701c7 "block: fail op_is_write() requests to read-only partitions". Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> Fixes: 721c7fc701c7 ("block: fail op_is_write() requests to read-only partitions") Cc: stable@xxxxxxxxxxxxxxx # 4.18 --- block/blk-core.c | 3 +++ drivers/md/dm-verity-target.c | 33 +++++++++++++++++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) Index: linux-2.6/block/blk-core.c =================================================================== --- linux-2.6.orig/block/blk-core.c 2018-08-15 16:47:18.930000000 +0200 +++ linux-2.6/block/blk-core.c 2018-08-22 16:37:19.680000000 +0200 @@ -2155,6 +2155,9 @@ static inline bool bio_check_ro(struct b if (part->policy && op_is_write(bio_op(bio))) { char b[BDEVNAME_SIZE]; + if (op_is_flush(bio->bi_opf) && !bio_sectors(bio)) + return false; + WARN_ONCE(1, "generic_make_request: Trying to write " "to read-only block-device %s (partno %d)\n",