int ret;
ret = wait_on_buffer_async(*--wait_bh, current->io_wait);
- if (ret && !err)
+ if (ret && !err) {
+ WARN(1, "%s: ret\n", __FUNCTION__);
err = ret;
+ }
if (!buffer_uptodate(*wait_bh))
err = -EIO;
}
int err;
err = wait_on_buffer_async(bh, current->io_wait);
- if (err && !ret)
+ if (err && !ret) {
+ WARN(1, "%s: ret\n", __FUNCTION__);
ret = err;
+ }
if (!buffer_uptodate(bh))
ret = -EIO;
}
if (!buffer_uptodate(bh) && !buffer_delay(bh) && !buffer_unwritten(bh)) {
ll_rw_block(READ, 1, &bh);
err = wait_on_buffer_async(bh, current->io_wait);
+ if (err) {
+ WARN(1, "err=%d\n", err);
+ goto out;
+ }
/* Uhhuh. Read error. Complain and punt. */
err = -EIO;
if (!buffer_uptodate(bh))
get_bh(bh);
bh->b_end_io = end_buffer_read_sync;
submit_bh(READ, bh);
- if (wait_on_buffer_async(bh, current->io_wait))
+ if (wait_on_buffer_async(bh, current->io_wait)) {
+ WARN(1, "%s: err\n", __FUNCTION__);
return -EIOCBRETRY;
+ }
if (buffer_uptodate(bh))
return 0;
return -EIO;
if (!test_bit(PG_BUSY, &req->wb_flags))
goto out;
ret = out_of_line_wait_on_bit(&req->wb_flags, PG_BUSY,
- nfs_wait_bit_killable, TASK_KILLABLE);
+ nfs_wait_bit_killable, TASK_KILLABLE, NULL);
out:
return ret;
}
*/
static inline void lock_page(struct page *page)
{
- WARN_ON(current->io_wait);
+ WARN_ON(in_aio(current));
lock_page_async(page, NULL);
}
dprintk("RPC: %5u sync task going to sleep\n", task->tk_pid);
status = out_of_line_wait_on_bit(&task->tk_runstate,
RPC_TASK_QUEUED, rpc_wait_bit_killable,
- TASK_KILLABLE);
+ TASK_KILLABLE, NULL);
if (status == -ERESTARTSYS) {
/*
* When a sync task receives a signal, it exits with