Fix writeback for lbatpage
This commit is contained in:
parent
abdb25d31c
commit
9a543670aa
|
@ -80,7 +80,7 @@ lbatpage_flush_endio(struct bio* bio)
|
|||
printk(KERN_ERR "%s: I/O failed\n", __func__);
|
||||
lp->state = CACHE_STATE_ERROR;
|
||||
}
|
||||
cbd_free_page(bio->bi_io_vec[0].bv_page);
|
||||
unlock_page(lp->page);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -94,15 +94,10 @@ lbatpage_flush(struct lbatpage* lp)
|
|||
if (lp->state == CACHE_STATE_ERROR) {
|
||||
ret = -EIO;
|
||||
}
|
||||
unlock_page(lp->page);
|
||||
goto out;
|
||||
}
|
||||
iopagev[0] = cbd_alloc_page();
|
||||
if (!iopagev[0]) {
|
||||
printk(KERN_ERR "%s: out of memory\n", __func__);
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
memcpy(page_address(iopagev[0]), lp->buf, PAGE_SIZE);
|
||||
iopagev[0] = lp->page;
|
||||
pblk_write(lp->params, lp->pblk, 1, iopagev, lbatpage_flush_endio, lp);
|
||||
lp->state = CACHE_STATE_CLEAN;
|
||||
|
||||
|
@ -114,6 +109,7 @@ out:
|
|||
void
|
||||
lbatpage_reset(struct lbatpage* lp, u64 pblk)
|
||||
{
|
||||
lock_page(lp->page);
|
||||
if (lp->pblk != pblk) {
|
||||
lp->pblk = pblk;
|
||||
lp->state = CACHE_STATE_UNCACHED;
|
||||
|
|
Loading…
Reference in New Issue