]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: fix redirty_page to actually set the dirty bit
authorSage Weil <sage@newdream.net>
Fri, 22 Aug 2008 21:37:59 +0000 (14:37 -0700)
committerSage Weil <sage@newdream.net>
Fri, 22 Aug 2008 21:37:59 +0000 (14:37 -0700)
src/kernel/addr.c

index 4c5fb7b62fa1848cec0efd683016f1b4d4cddbdc..3c27d69378e7908617dee0a1098d0285cea7f7c9 100644 (file)
@@ -124,6 +124,13 @@ static int ceph_set_page_dirty(struct page *page,
 static void ceph_redirty_page(struct address_space *mapping, struct page *page)
 {
        BUG_ON(!PageLocked(page));
+
+       if (TestSetPageDirty(page)) {
+               dout(20, "%p redirty_page %p -- already dirty\n",
+                    mapping->host, page);
+               return 0;
+       }
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
        spin_lock_irq(&mapping->tree_lock);
 #else