User: | Jiri Slaby |
Error type: | Calling function from invalid context |
Error type description: | Some function is called at inappropriate place like sleep inside critical sections or interrupt handlers |
File location: | mm/migrate.c |
Line in file: | 528 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2011-11-07 22:19:02 UTC |
498 .nr_to_write = 1, 499 .range_start = 0, 500 .range_end = LLONG_MAX, 501 .nonblocking = 1, 502 .for_reclaim = 1 503 }; 504 int rc; 505 506 if (!mapping->a_ops->writepage) 507 /* No write method for the address space */ 508 return -EINVAL; 509 510 if (!clear_page_dirty_for_io(page)) 511 /* Someone else already triggered a write */ 512 return -EAGAIN; 513 514 /* 515 * A dirty page may imply that the underlying filesystem has 516 * the page on some queue. So the page must be clean for 517 * migration. Writeout may mean we loose the lock and the 518 * page state is no longer what we checked for earlier. 519 * At this point we know that the migration attempt cannot 520 * be successful. 521 */ 522 remove_migration_ptes(page, page); 523 524 rc = mapping->a_ops->writepage(page, &wbc); 525 526 if (rc != AOP_WRITEPAGE_ACTIVATE) 527 /* unlocked. Relock */ 528 lock_page(page); 529 530 return (rc < 0) ? -EIO : -EAGAIN; 531} 532 533/* 534 * Default handling if a filesystem does not provide a migration function. 535 */ 536static int fallback_migrate_page(struct address_space *mapping, 537 struct page *newpage, struct page *page) 538{