forked from Minki/linux
ceph: fix pagelist kunmap tail
A wrong parameter was passed to the kunmap. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
ca04d9c3ec
commit
3d4401d9d0
|
@ -5,10 +5,18 @@
|
||||||
|
|
||||||
#include "pagelist.h"
|
#include "pagelist.h"
|
||||||
|
|
||||||
|
static void ceph_pagelist_unmap_tail(struct ceph_pagelist *pl)
|
||||||
|
{
|
||||||
|
struct page *page = list_entry(pl->head.prev, struct page,
|
||||||
|
lru);
|
||||||
|
kunmap(page);
|
||||||
|
}
|
||||||
|
|
||||||
int ceph_pagelist_release(struct ceph_pagelist *pl)
|
int ceph_pagelist_release(struct ceph_pagelist *pl)
|
||||||
{
|
{
|
||||||
if (pl->mapped_tail)
|
if (pl->mapped_tail)
|
||||||
kunmap(pl->mapped_tail);
|
ceph_pagelist_unmap_tail(pl);
|
||||||
|
|
||||||
while (!list_empty(&pl->head)) {
|
while (!list_empty(&pl->head)) {
|
||||||
struct page *page = list_first_entry(&pl->head, struct page,
|
struct page *page = list_first_entry(&pl->head, struct page,
|
||||||
lru);
|
lru);
|
||||||
|
@ -26,7 +34,7 @@ static int ceph_pagelist_addpage(struct ceph_pagelist *pl)
|
||||||
pl->room += PAGE_SIZE;
|
pl->room += PAGE_SIZE;
|
||||||
list_add_tail(&page->lru, &pl->head);
|
list_add_tail(&page->lru, &pl->head);
|
||||||
if (pl->mapped_tail)
|
if (pl->mapped_tail)
|
||||||
kunmap(pl->mapped_tail);
|
ceph_pagelist_unmap_tail(pl);
|
||||||
pl->mapped_tail = kmap(page);
|
pl->mapped_tail = kmap(page);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user