delay in block_read_full_page()

From: Michael Mesnier
Date: Sat Nov 06 2004 - 02:17:14 EST


Hello,

Please cc: me directly in your response.

I'm running into some trouble with an installable file system I'm writing. In myfs_readpage() I simply return block_read_full_page() which subsequently calls myfs_get_block(). However, there's a delay before the I/O actually gets issued to the device. Running sync from the command line causes the I/O to get issued immediately, so the sync call (even it there aren't dirty buffers) also manages to schedule any outstanding read I/Os. How should my fs indicate to the vfs that these read I/Os need to be issued immediately after my_readpage() is called?

Thanks in advanced,

-Mike

static int myfs_get_block(struct inode *inode, long iblock, struct buffer_head *bh_result, int create) {
bh_result->b_dev = inode->i_dev;
bh_result->b_blocknr = iblock;
bh_result->b_state |= (1UL << BH_Mapped);
return 0;
}

static int myfs_readpage(struct file *file, struct page *page) {
return block_read_full_page(page,myfs_get_block);
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/