For example, if I do the following:
rm -f /tmp/junk
dd if=/dev/zero of=/tmp/junk bs=1k count=1024
losetup /dev/loop0 /tmp/junk
the kernel message buffer immediately fills with the abovementioned
warning. This happens in all kernels >= 2.3.7.
The message is generated by this test in invalidate_inode_pages():
get_page(page);
...
if (page_count(page) != 2)
printk("hm, busy page invalidated? (not necesserily a bug)\n");
When drivers/block/loop.c:loop_set_fd() calls invalidate_inode_pages(),
it seems that each page in the backing file already has a count of 2,
so at the test the count is 3, which triggers the message.
I haven't noticed any other negative effects when using loop devices
(no kernel instability or data corruption) so I suspect the test is
bogus and should be removed or modified.
What sayeth the VFS/page cache experts?
/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/