tree: git://git.cmpxchg.org/linux-mmotm.git master head: 6d5b029d523e959579667282e713106a29c193d2 commit: 80509a64e354a3de67cfe4dee1cf51c8a2512e44 [187/302] mm/page_io.c: fix polled swap page in config: x86_64-rhel-7.2-clear (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: git checkout 80509a64e354a3de67cfe4dee1cf51c8a2512e44 # save the attached .config to linux build tree make ARCH=x86_64 Note: the mmotm/master HEAD 6d5b029d523e959579667282e713106a29c193d2 builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): mm/page_io.c: In function 'swap_readpage': >> mm/page_io.c:405:18: error: 'REQ_HIPRI' undeclared (first use in this function); did you mean 'RWF_HIPRI'? bio->bi_opf |= REQ_HIPRI; ^~~~~~~~~ RWF_HIPRI mm/page_io.c:405:18: note: each undeclared identifier is reported only once for each function it appears in vim +405 mm/page_io.c 350 351 int swap_readpage(struct page *page, bool synchronous) 352 { 353 struct bio *bio; 354 int ret = 0; 355 struct swap_info_struct *sis = page_swap_info(page); 356 blk_qc_t qc; 357 struct gendisk *disk; 358 359 VM_BUG_ON_PAGE(!PageSwapCache(page) && !synchronous, page); 360 VM_BUG_ON_PAGE(!PageLocked(page), page); 361 VM_BUG_ON_PAGE(PageUptodate(page), page); 362 if (frontswap_load(page) == 0) { 363 SetPageUptodate(page); 364 unlock_page(page); 365 goto out; 366 } 367 368 if (sis->flags & SWP_FS) { 369 struct file *swap_file = sis->swap_file; 370 struct address_space *mapping = swap_file->f_mapping; 371 372 ret = mapping->a_ops->readpage(swap_file, page); 373 if (!ret) 374 count_vm_event(PSWPIN); 375 return ret; 376 } 377 378 ret = bdev_read_page(sis->bdev, swap_page_sector(page), page); 379 if (!ret) { 380 if (trylock_page(page)) { 381 swap_slot_free_notify(page); 382 unlock_page(page); 383 } 384 385 count_vm_event(PSWPIN); 386 return 0; 387 } 388 389 ret = 0; 390 bio = get_swap_bio(GFP_KERNEL, page, end_swap_bio_read); 391 if (bio == NULL) { 392 unlock_page(page); 393 ret = -ENOMEM; 394 goto out; 395 } 396 disk = bio->bi_disk; 397 /* 398 * Keep this task valid during swap readpage because the oom killer may 399 * attempt to access it in the page fault retry time check. 400 */ 401 get_task_struct(current); 402 bio->bi_private = current; 403 bio_set_op_attrs(bio, REQ_OP_READ, 0); 404 if (synchronous) > 405 bio->bi_opf |= REQ_HIPRI; 406 count_vm_event(PSWPIN); 407 bio_get(bio); 408 qc = submit_bio(bio); 409 while (synchronous) { 410 set_current_state(TASK_UNINTERRUPTIBLE); 411 if (!READ_ONCE(bio->bi_private)) 412 break; 413 414 if (!blk_poll(disk->queue, qc)) 415 io_schedule(); 416 } 417 __set_current_state(TASK_RUNNING); 418 bio_put(bio); 419 420 out: 421 return ret; 422 } 423 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip