On Feb. 09, 2008, 10:52 +0200, "Manish Katiyar" <[EMAIL PROTECTED]> wrote:
> Hi,
>
> In the implementation of file systems for 2.6 kernels,
> generic_file_read is often replaced with do_sync_read(). In this
> function we call "filp->f_op->aio_read" unconditionally.
> where most of the times aio_read is intialized as
> generic_file_aio_read(). Wouldn't it be a good idea to change the
> following code
>
> 241 for (;;) {
> 242 ret = filp->f_op->aio_read(&kiocb, &iov, 1, kiocb.ki_pos);
> 243 if (ret != -EIOCBRETRY)
> 244 break;
> 245 wait_on_retry_sync_kiocb(&kiocb);
>
> to
>
> 241 for (;;) {
> 242 if(filp->f_op->aio_read)
> 243 ret = filp->f_op->aio_read(&kiocb, &iov, 1, kiocb.ki_pos);
> 244 else
> 245 ret = generic_file_aio_read(&kiocb, &iov, 1, kiocb.ki_pos);
> 246 if (ret != -EIOCBRETRY)
> 247 break;
> 248 wait_on_retry_sync_kiocb(&kiocb);
>
> Just to have a fall back mechanism as we do at many places in the VFS layer..
>
FWIW, it's a bit more efficient to set aio_read to generic_file_aio_read and
call it unconditionally.
Benny
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs