dect
/
linux-2.6
Archived
13
0
Fork 0

ceph: writepage grabs and releases inode

Fixes a deadlock that is triggered due to kswapd,
while the page was locked and the iput couldn't tear
down the address space.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
This commit is contained in:
Yehuda Sadeh 2009-12-16 14:51:06 -08:00 committed by Sage Weil
parent 169e16ce81
commit dbd646a851
1 changed files with 6 additions and 1 deletions

View File

@ -448,8 +448,13 @@ out:
static int ceph_writepage(struct page *page, struct writeback_control *wbc)
{
int err = writepage_nounlock(page, wbc);
int err;
struct inode *inode = page->mapping->host;
BUG_ON(!inode);
igrab(inode);
err = writepage_nounlock(page, wbc);
unlock_page(page);
iput(inode);
return err;
}