Showing error 561

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


Source:

 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{
Show full sources