summaryrefslogtreecommitdiff
path: root/fs/ceph/addr.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/addr.c')
-rw-r--r--fs/ceph/addr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index bf535815592..d0cdceb0b90 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -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;
}