]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: end_page_writeback w/ page still locked
authorSage Weil <sage@newdream.net>
Sat, 24 May 2008 13:55:17 +0000 (06:55 -0700)
committerSage Weil <sage@newdream.net>
Sat, 24 May 2008 20:02:42 +0000 (13:02 -0700)
src/kernel/addr.c

index 997f6925641113c1d5068da50084496fad026dfe..00cbbb4baf0f1ade1d9fcfb4bce832f3ea4ff28b 100644 (file)
@@ -220,8 +220,8 @@ static int ceph_writepage(struct page *page, struct writeback_control *wbc)
                wbc->pages_skipped++;
                ceph_set_page_dirty(page);
        }
-       unlock_page(page);
        end_page_writeback(page);
+       unlock_page(page);
        page_cache_release(page);
        return err;
 }
@@ -450,8 +450,8 @@ get_more_pages:
                                        ceph_set_page_dirty(page);
                                }
                                dout(50, "unlocking %d %p\n", i, page);
-                               unlock_page(page);
                                end_page_writeback(page);
+                               unlock_page(page);
                        }
                        dout(20, "%p cleaned %d pages\n", inode, cleaned);
                        ceph_put_wrbuffer_cap_refs(ci, cleaned);