|
@@ -2163,9 +2163,12 @@ static inline bool bio_check_ro(struct bio *bio, struct hd_struct *part)
|
|
{
|
|
{
|
|
const int op = bio_op(bio);
|
|
const int op = bio_op(bio);
|
|
|
|
|
|
- if (part->policy && (op_is_write(op) && !op_is_flush(op))) {
|
|
|
|
|
|
+ if (part->policy && op_is_write(op)) {
|
|
char b[BDEVNAME_SIZE];
|
|
char b[BDEVNAME_SIZE];
|
|
|
|
|
|
|
|
+ if (op_is_flush(bio->bi_opf) && !bio_sectors(bio))
|
|
|
|
+ return false;
|
|
|
|
+
|
|
WARN_ONCE(1,
|
|
WARN_ONCE(1,
|
|
"generic_make_request: Trying to write "
|
|
"generic_make_request: Trying to write "
|
|
"to read-only block-device %s (partno %d)\n",
|
|
"to read-only block-device %s (partno %d)\n",
|