Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus-20190127' of git://git.kernel.dk/linux-block

Pull block revert from Jens Axboe:
"Silly error snuck into a patch from the last series, let's do a revert
to avoid a potential use-after-free"

* tag 'for-linus-20190127' of git://git.kernel.dk/linux-block:
Revert "block: cover another queue enter recursion via BIO_QUEUE_ENTERED"

+10 -11
-11
block/blk-core.c
··· 1083 1083 /* Create a fresh bio_list for all subordinate requests */ 1084 1084 bio_list_on_stack[1] = bio_list_on_stack[0]; 1085 1085 bio_list_init(&bio_list_on_stack[0]); 1086 - 1087 - /* 1088 - * Since we're recursing into make_request here, ensure 1089 - * that we mark this bio as already having entered the queue. 1090 - * If not, and the queue is going away, we can get stuck 1091 - * forever on waiting for the queue reference to drop. But 1092 - * that will never happen, as we're already holding a 1093 - * reference to it. 1094 - */ 1095 - bio_set_flag(bio, BIO_QUEUE_ENTERED); 1096 1086 ret = q->make_request_fn(q, bio); 1097 - bio_clear_flag(bio, BIO_QUEUE_ENTERED); 1098 1087 1099 1088 /* sort new bios into those for a lower level 1100 1089 * and those for the same level
+10
block/blk-merge.c
··· 272 272 /* there isn't chance to merge the splitted bio */ 273 273 split->bi_opf |= REQ_NOMERGE; 274 274 275 + /* 276 + * Since we're recursing into make_request here, ensure 277 + * that we mark this bio as already having entered the queue. 278 + * If not, and the queue is going away, we can get stuck 279 + * forever on waiting for the queue reference to drop. But 280 + * that will never happen, as we're already holding a 281 + * reference to it. 282 + */ 283 + bio_set_flag(*bio, BIO_QUEUE_ENTERED); 284 + 275 285 bio_chain(split, *bio); 276 286 trace_block_split(q, split, (*bio)->bi_iter.bi_sector); 277 287 generic_make_request(*bio);