From: Sage Weil Date: Fri, 22 Aug 2008 21:37:59 +0000 (-0700) Subject: kclient: fix redirty_page to actually set the dirty bit X-Git-Tag: v0.4~178 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=291971ed2d5cf86e860eb6851f957a49e02d5fe3;p=ceph.git kclient: fix redirty_page to actually set the dirty bit --- diff --git a/src/kernel/addr.c b/src/kernel/addr.c index 4c5fb7b62fa..3c27d69378e 100644 --- a/src/kernel/addr.c +++ b/src/kernel/addr.c @@ -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