linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Gordon Farquharson" <gordonfarquharson@gmail.com>
To: "Linus Torvalds" <torvalds@osdl.org>
Cc: "Andrei Popa" <andrei.popa@i-neo.ro>,
	"Andrew Morton" <akpm@osdl.org>,
	"Martin Michlmayr" <tbm@cyrius.com>,
	"Peter Zijlstra" <a.p.zijlstra@chello.nl>,
	"Hugh Dickins" <hugh@veritas.com>,
	"Nick Piggin" <nickpiggin@yahoo.com.au>,
	"Arjan van de Ven" <arjan@infradead.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: fix page_mkclean_one (was: 2.6.19 file content corruption on ext3)
Date: Sun, 24 Dec 2006 12:27:57 -0700	[thread overview]
Message-ID: <97a0a9ac0612241127u1051f7eay70065b03f27ae668@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0612240907180.3671@woody.osdl.org>

On 12/24/06, Linus Torvalds <torvalds@osdl.org> wrote:

> How about this particularly stupid diff? (please test with something that
> _would_ cause corruption normally).
>
> It is _entirely_ untested, but what it tries to do is to simply serialize
> any writeback in progress with any process that tries to re-map a shared
> page into its address space and dirty it. I haven't tested it, and maybe
> it misses some case, but it looks likea good way to try to avoid races
> with marking pages dirty and the writeback phase ..

The apt cache files (/var/cache/apt/*.bin) still get corrupted with
this patch and 2.6.19.

Gordon

diff -Naupr linux-2.6.19.orig/fs/buffer.c linux-2.6.19/fs/buffer.c
--- linux-2.6.19.orig/fs/buffer.c       2006-11-29 14:57:37.000000000 -0700
+++ linux-2.6.19/fs/buffer.c    2006-12-21 01:16:31.000000000 -0700
@@ -2832,7 +2832,7 @@ int try_to_free_buffers(struct page *pag
        int ret = 0;

        BUG_ON(!PageLocked(page));
-       if (PageWriteback(page))
+       if (PageDirty(page) || PageWriteback(page))
                return 0;

        if (mapping == NULL) {          /* can this still happen? */
@@ -2843,17 +2843,6 @@ int try_to_free_buffers(struct page *pag
        spin_lock(&mapping->private_lock);
        ret = drop_buffers(page, &buffers_to_free);
        spin_unlock(&mapping->private_lock);
-       if (ret) {
-               /*
-                * If the filesystem writes its buffers by hand (eg ext3)
-                * then we can have clean buffers against a dirty page.  We
-                * clean the page here; otherwise later reattachment of buffers
-                * could encounter a non-uptodate page, which is unresolvable.
-                * This only applies in the rare case where try_to_free_buffers
-                * succeeds but the page is not freed.
-                */
-               clear_page_dirty(page);
-       }
 out:
        if (buffers_to_free) {
                struct buffer_head *bh = buffers_to_free;
diff -Naupr linux-2.6.19.orig/fs/hugetlbfs/inode.c
linux-2.6.19/fs/hugetlbfs/inode.c
--- linux-2.6.19.orig/fs/hugetlbfs/inode.c      2006-11-29
14:57:37.000000000 -0700
+++ linux-2.6.19/fs/hugetlbfs/inode.c   2006-12-21 01:15:21.000000000 -0700
@@ -176,7 +176,7 @@ static int hugetlbfs_commit_write(struct

 static void truncate_huge_page(struct page *page)
 {
-       clear_page_dirty(page);
+       cancel_dirty_page(page, /* No IO accounting for huge pages? */0);
        ClearPageUptodate(page);
        remove_from_page_cache(page);
        put_page(page);
diff -Naupr linux-2.6.19.orig/include/linux/page-flags.h
linux-2.6.19/include/linux/page-flags.h
--- linux-2.6.19.orig/include/linux/page-flags.h        2006-11-29
14:57:37.000000000 -0700
+++ linux-2.6.19/include/linux/page-flags.h     2006-12-21
01:15:21.000000000 -0700
@@ -253,15 +253,11 @@ static inline void SetPageUptodate(struc

 struct page;   /* forward declaration */

-int test_clear_page_dirty(struct page *page);
+extern void cancel_dirty_page(struct page *page, unsigned int account_size);
+
 int test_clear_page_writeback(struct page *page);
 int test_set_page_writeback(struct page *page);

-static inline void clear_page_dirty(struct page *page)
-{
-       test_clear_page_dirty(page);
-}
-
 static inline void set_page_writeback(struct page *page)
 {
        test_set_page_writeback(page);
diff -Naupr linux-2.6.19.orig/mm/memory.c linux-2.6.19/mm/memory.c
--- linux-2.6.19.orig/mm/memory.c       2006-11-29 14:57:37.000000000 -0700
+++ linux-2.6.19/mm/memory.c    2006-12-24 11:04:03.000000000 -0700
@@ -1534,6 +1534,7 @@ static int do_wp_page(struct mm_struct *
                        if (!pte_same(*page_table, orig_pte))
                                goto unlock;
                }
+               wait_on_page_writeback(old_page);
                dirty_page = old_page;
                get_page(dirty_page);
                reuse = 1;
@@ -1832,6 +1833,33 @@ void unmap_mapping_range(struct address_
 }
 EXPORT_SYMBOL(unmap_mapping_range);

+static void check_last_page(struct address_space *mapping, loff_t size)
+{
+       pgoff_t index;
+       unsigned int offset;
+       struct page *page;
+
+       if (!mapping)
+               return;
+       offset = size & ~PAGE_MASK;
+       if (!offset)
+               return;
+       index = size >> PAGE_SHIFT;
+       page = find_lock_page(mapping, index);
+       if (page) {
+               unsigned int check = 0;
+               unsigned char *kaddr = kmap_atomic(page, KM_USER0);
+               do {
+                       check += kaddr[offset++];
+               } while (offset < PAGE_SIZE);
+               kunmap_atomic(kaddr,KM_USER0);
+               unlock_page(page);
+               page_cache_release(page);
+               if (check)
+                       printk("%s: BADNESS: truncate check %u\n",
current->comm, check);
+       }
+}
+
 /**
  * vmtruncate - unmap mappings "freed" by truncate() syscall
  * @inode: inode of the file used
@@ -1865,6 +1893,7 @@ do_expand:
                goto out_sig;
        if (offset > inode->i_sb->s_maxbytes)
                goto out_big;
+       check_last_page(mapping, inode->i_size);
        i_size_write(inode, offset);

 out_truncate:
@@ -2206,6 +2235,7 @@ retry:
                                page_cache_release(new_page);
                                return VM_FAULT_SIGBUS;
                        }
+                       wait_on_page_writeback(new_page);
                }
        }

diff -Naupr linux-2.6.19.orig/mm/page-writeback.c
linux-2.6.19/mm/page-writeback.c
--- linux-2.6.19.orig/mm/page-writeback.c       2006-11-29
14:57:37.000000000 -0700
+++ linux-2.6.19/mm/page-writeback.c    2006-12-21 01:26:53.000000000 -0700
@@ -843,39 +843,6 @@ int set_page_dirty_lock(struct page *pag
 EXPORT_SYMBOL(set_page_dirty_lock);

 /*
- * Clear a page's dirty flag, while caring for dirty memory accounting.
- * Returns true if the page was previously dirty.
- */
-int test_clear_page_dirty(struct page *page)
-{
-       struct address_space *mapping = page_mapping(page);
-       unsigned long flags;
-
-       if (mapping) {
-               write_lock_irqsave(&mapping->tree_lock, flags);
-               if (TestClearPageDirty(page)) {
-                       radix_tree_tag_clear(&mapping->page_tree,
-                                               page_index(page),
-                                               PAGECACHE_TAG_DIRTY);
-                       write_unlock_irqrestore(&mapping->tree_lock, flags);
-                       /*
-                        * We can continue to use `mapping' here because the
-                        * page is locked, which pins the address_space
-                        */
-                       if (mapping_cap_account_dirty(mapping)) {
-                               page_mkclean(page);
-                               dec_zone_page_state(page, NR_FILE_DIRTY);
-                       }
-                       return 1;
-               }
-               write_unlock_irqrestore(&mapping->tree_lock, flags);
-               return 0;
-       }
-       return TestClearPageDirty(page);
-}
-EXPORT_SYMBOL(test_clear_page_dirty);
-
-/*
  * Clear a page's dirty flag, while caring for dirty memory accounting.
  * Returns true if the page was previously dirty.
  *
diff -Naupr linux-2.6.19.orig/mm/rmap.c linux-2.6.19/mm/rmap.c
--- linux-2.6.19.orig/mm/rmap.c 2006-11-29 14:57:37.000000000 -0700
+++ linux-2.6.19/mm/rmap.c      2006-12-22 23:25:09.000000000 -0700
@@ -432,7 +432,7 @@ static int page_mkclean_one(struct page
 {
        struct mm_struct *mm = vma->vm_mm;
        unsigned long address;
-       pte_t *pte, entry;
+       pte_t *pte;
        spinlock_t *ptl;
        int ret = 0;

@@ -444,17 +444,18 @@ static int page_mkclean_one(struct page
        if (!pte)
                goto out;

-       if (!pte_dirty(*pte) && !pte_write(*pte))
-               goto unlock;
+       if (pte_dirty(*pte) || pte_write(*pte)) {
+               pte_t entry;

-       entry = ptep_get_and_clear(mm, address, pte);
-       entry = pte_mkclean(entry);
-       entry = pte_wrprotect(entry);
-       ptep_establish(vma, address, pte, entry);
-       lazy_mmu_prot_update(entry);
-       ret = 1;
+               flush_cache_page(vma, address, pte_pfn(*pte));
+               entry = ptep_clear_flush(vma, address, pte);
+               entry = pte_wrprotect(entry);
+               entry = pte_mkclean(entry);
+               set_pte_at(vma, address, pte, entry);
+               lazy_mmu_prot_update(entry);
+               ret = 1;
+       }

-unlock:
        pte_unmap_unlock(pte, ptl);
 out:
        return ret;
@@ -489,6 +490,8 @@ int page_mkclean(struct page *page)
                if (mapping)
                        ret = page_mkclean_file(mapping, page);
        }
+       if (page_test_and_clear_dirty(page))
+               ret = 1;

        return ret;
 }
@@ -587,8 +590,6 @@ void page_remove_rmap(struct page *page)
                 * Leaving it set also helps swapoff to reinstate ptes
                 * faster for those pages still in swapcache.
                 */
-               if (page_test_and_clear_dirty(page))
-                       set_page_dirty(page);
                __dec_zone_page_state(page,
                                PageAnon(page) ? NR_ANON_PAGES :
NR_FILE_MAPPED);
        }
@@ -607,6 +608,7 @@ static int try_to_unmap_one(struct page
        pte_t pteval;
        spinlock_t *ptl;
        int ret = SWAP_AGAIN;
+       struct page *dirty_page = NULL;

        address = vma_address(page, vma);
        if (address == -EFAULT)
@@ -633,7 +635,7 @@ static int try_to_unmap_one(struct page

        /* Move the dirty bit to the physical page now the pte is gone. */
        if (pte_dirty(pteval))
-               set_page_dirty(page);
+               dirty_page = page;

        /* Update high watermark before we lower rss */
        update_hiwater_rss(mm);
@@ -684,6 +686,8 @@ static int try_to_unmap_one(struct page

 out_unmap:
        pte_unmap_unlock(pte, ptl);
+       if (dirty_page)
+               set_page_dirty(dirty_page);
 out:
        return ret;
 }
@@ -915,6 +919,9 @@ int try_to_unmap(struct page *page, int
        else
                ret = try_to_unmap_file(page, migration);

+       if (page_test_and_clear_dirty(page))
+               set_page_dirty(page);
+
        if (!page_mapped(page))
                ret = SWAP_SUCCESS;
        return ret;
diff -Naupr linux-2.6.19.orig/mm/truncate.c linux-2.6.19/mm/truncate.c
--- linux-2.6.19.orig/mm/truncate.c     2006-11-29 14:57:37.000000000 -0700
+++ linux-2.6.19/mm/truncate.c  2006-12-23 13:21:42.000000000 -0700
@@ -50,6 +50,21 @@ static inline void truncate_partial_page
                do_invalidatepage(page, partial);
 }

+void cancel_dirty_page(struct page *page, unsigned int account_size)
+{
+       /* If we're cancelling the page, it had better not be mapped
any more */+       if (page_mapped(page)) {
+               static unsigned int warncount;
+
+               WARN_ON(++warncount < 5);
+       }
+
+       if (TestClearPageDirty(page) && account_size &&
+                       mapping_cap_account_dirty(page->mapping))
+               dec_zone_page_state(page, NR_FILE_DIRTY);
+}
+
+
 /*
  * If truncate cannot remove the fs-private metadata from the page, the page
  * becomes anonymous.  It will be left on the LRU and may even be mapped into
@@ -66,10 +81,11 @@ truncate_complete_page(struct address_sp
        if (page->mapping != mapping)
                return;

+       cancel_dirty_page(page, PAGE_CACHE_SIZE);
+
        if (PagePrivate(page))
                do_invalidatepage(page, 0);

-       clear_page_dirty(page);
        ClearPageUptodate(page);
        ClearPageMappedToDisk(page);
        remove_from_page_cache(page);
@@ -348,7 +364,6 @@ int invalidate_inode_pages2_range(struct
                for (i = 0; !ret && i < pagevec_count(&pvec); i++) {
                        struct page *page = pvec.pages[i];
                        pgoff_t page_index;
-                       int was_dirty;

                        lock_page(page);
                        if (page->mapping != mapping) {
@@ -384,12 +399,8 @@ int invalidate_inode_pages2_range(struct
                                          PAGE_CACHE_SIZE, 0);
                                }
                        }
-                       was_dirty = test_clear_page_dirty(page);
-                       if (!invalidate_complete_page2(mapping, page)) {
-                               if (was_dirty)
-                                       set_page_dirty(page);
+                       if (!invalidate_complete_page2(mapping, page))
                                ret = -EIO;
-                       }
                        unlock_page(page);
                }
                pagevec_release(&pvec);


-- 
Gordon Farquharson

  parent reply	other threads:[~2006-12-24 19:27 UTC|newest]

Thread overview: 311+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-17  0:13 2.6.19 file content corruption on ext3 Andrei Popa
2006-12-17 12:06 ` Andrew Morton
2006-12-17 12:19   ` Marc Haber
2006-12-17 12:32   ` Andrei Popa
2006-12-17 13:39   ` Andrei Popa
2006-12-17 23:40     ` Andrew Morton
2006-12-18  1:02       ` Linus Torvalds
2006-12-18  1:22       ` Linus Torvalds
2006-12-18  1:29         ` Linus Torvalds
2006-12-18  1:57           ` Linus Torvalds
2006-12-18  4:51             ` Nick Piggin
2006-12-18  5:43               ` Andrew Morton
2006-12-18  7:22                 ` Nick Piggin
2006-12-18  9:18                   ` Andrew Morton
2006-12-18  9:26                     ` Andrei Popa
2006-12-18  9:42                     ` Nick Piggin
2006-12-19  8:51                 ` Marc Haber
2006-12-19  9:28                   ` Martin Michlmayr
2006-12-28 18:05                   ` Marc Haber
2006-12-28 19:00                     ` Linus Torvalds
2006-12-28 19:05                       ` Petri Kaukasoina
2006-12-28 19:21                         ` Linus Torvalds
2006-12-28 19:39                           ` Dave Jones
2006-12-28 20:10                             ` Arjan van de Ven
2006-12-29  9:23                             ` maximilian attems
2006-12-29 15:02                               ` Dave Jones
2006-12-29 18:52                                 ` maximilian attems
2006-12-29 19:14                                   ` Dave Jones
2006-12-28 21:24                       ` Linus Torvalds
2006-12-28 21:36                         ` Russell King
2006-12-28 22:37                         ` Linus Torvalds
2006-12-28 22:50                           ` David Miller
2006-12-28 23:01                             ` Linus Torvalds
2006-12-29  1:38                             ` Linus Torvalds
2006-12-29  1:59                               ` Andrew Morton
2006-12-28 23:36                           ` Anton Altaparmakov
2006-12-28 23:54                             ` Linus Torvalds
2006-12-29 17:49                       ` Guillaume Chazarain
2006-12-18  5:50               ` Linus Torvalds
2006-12-18  7:16                 ` Andrew Morton
2006-12-18  7:17                   ` Andrew Morton
2006-12-18  9:30                   ` Nick Piggin
2006-12-18  7:30                 ` Nick Piggin
2006-12-18  9:19                 ` Andrei Popa
2006-12-18  9:38                   ` Andrew Morton
2006-12-18 10:00                     ` Andrei Popa
2006-12-18 10:11                       ` Peter Zijlstra
2006-12-18 10:49                         ` Andrei Popa
2006-12-18 15:24                           ` Gene Heskett
2006-12-18 15:32                             ` Peter Zijlstra
2006-12-18 15:47                               ` Gene Heskett
2006-12-18 16:55       ` Peter Zijlstra
2006-12-18 18:03         ` Linus Torvalds
2006-12-18 18:24           ` Peter Zijlstra
2006-12-18 18:35             ` Linus Torvalds
2006-12-18 19:04               ` Andrei Popa
2006-12-18 19:10                 ` Peter Zijlstra
2006-12-18 19:18                 ` Linus Torvalds
2006-12-18 19:44                   ` Andrei Popa
2006-12-18 20:14                     ` Linus Torvalds
2006-12-18 20:41                       ` Linus Torvalds
2006-12-18 21:11                         ` Andrei Popa
2006-12-18 22:00                           ` Alessandro Suardi
2006-12-18 22:45                             ` Linus Torvalds
2006-12-19  0:13                               ` Andrei Popa
2006-12-19  0:29                                 ` Linus Torvalds
2006-12-18 22:32                           ` Linus Torvalds
2006-12-18 23:48                             ` Andrei Popa
2006-12-19  0:04                               ` Linus Torvalds
2006-12-19  0:29                                 ` Andrei Popa
2006-12-19  0:57                                   ` Linus Torvalds
2006-12-19  1:21                                     ` Andrew Morton
2006-12-19  1:44                                       ` Andrei Popa
2006-12-19  1:54                                         ` Andrew Morton
2006-12-19  2:04                                           ` Andrei Popa
2006-12-19  8:05                                           ` Andrei Popa
2006-12-19  8:24                                             ` Andrew Morton
2006-12-19  8:34                                               ` Pekka Enberg
2006-12-19  9:13                                               ` Marc Haber
2006-12-19  1:50                                     ` Andrei Popa
2006-12-19  1:03                               ` Gene Heskett
2006-12-18 22:34                         ` Gene Heskett
2006-12-22 17:27                           ` Linus Torvalds
2006-12-18 21:43                       ` Andrew Morton
2006-12-18 21:49                       ` Peter Zijlstra
2006-12-19 23:42                       ` Peter Zijlstra
2006-12-20  0:23                         ` Linus Torvalds
2006-12-20  9:01                           ` Peter Zijlstra
2006-12-20  9:12                             ` Peter Zijlstra
2006-12-20  9:39                             ` Arjan van de Ven
2006-12-20 11:26                               ` [PATCH] mm: fix page_mkclean_one (was: 2.6.19 file content corruption on ext3) Peter Zijlstra
2006-12-20 11:39                                 ` Jesper Juhl
2006-12-20 11:42                                   ` Peter Zijlstra
2006-12-20 12:12                                     ` Jesper Juhl
2006-12-20 13:00                                 ` Hugh Dickins
2006-12-20 13:56                                   ` Peter Zijlstra
2006-12-20 17:03                                     ` Martin Michlmayr
2006-12-20 17:35                                       ` Linus Torvalds
2006-12-20 17:53                                         ` Martin Michlmayr
2006-12-20 19:01                                           ` Linus Torvalds
2006-12-20 19:50                                             ` Linus Torvalds
2006-12-20 20:22                                               ` Peter Zijlstra
2006-12-20 21:55                                               ` Dave Kleikamp
2006-12-20 22:25                                                 ` Linus Torvalds
2006-12-20 22:59                                                   ` Dave Kleikamp
2006-12-20 22:15                                               ` Peter Zijlstra
2006-12-20 22:20                                                 ` Peter Zijlstra
2006-12-20 22:49                                                 ` Linus Torvalds
2006-12-20 23:03                                                   ` Peter Zijlstra
2006-12-21  9:16                                                     ` Martin Schwidefsky
2006-12-21  9:20                                                       ` Peter Zijlstra
2006-12-21  9:26                                                         ` Martin Schwidefsky
2006-12-21 20:01                                                         ` Linus Torvalds
2006-12-28  0:00                                                           ` Martin Schwidefsky
2006-12-28  0:42                                                             ` Linus Torvalds
2006-12-28  0:52                                                               ` [PATCH] mm: fix page_mkclean_one David Miller
2006-12-21  2:36                                                 ` [PATCH] mm: fix page_mkclean_one (was: 2.6.19 file content corruption on ext3) Trond Myklebust
2006-12-21  8:10                                                   ` Peter Zijlstra
2006-12-20 23:24                                               ` David Chinner
2006-12-20 23:55                                                 ` Linus Torvalds
2006-12-21  1:20                                                   ` David Chinner
2006-12-20 23:32                                               ` Andrew Morton
2006-12-20 23:55                                                 ` Linus Torvalds
2006-12-21  0:11                                                   ` Andrew Morton
2006-12-21  0:22                                                     ` Linus Torvalds
2006-12-21  0:24                                                       ` Linus Torvalds
2006-12-21 15:48                                                         ` Andrei Popa
2006-12-21 16:58                                                           ` Linus Torvalds
2006-12-21  0:43                                                       ` Linus Torvalds
2006-12-21  1:20                                                         ` Andrew Morton
2006-12-21  2:54                                                   ` Trond Myklebust
2006-12-21 17:19                                                     ` Linus Torvalds
2006-12-21  7:32                                               ` Gordon Farquharson
2006-12-21  7:53                                                 ` Linus Torvalds
2006-12-21  8:38                                                   ` Martin Michlmayr
2006-12-21  8:59                                                     ` Linus Torvalds
2006-12-21  9:17                                                   ` Gordon Farquharson
2006-12-21  9:27                                                     ` Andrew Morton
2006-12-22  4:20                                                       ` Gordon Farquharson
2006-12-22  4:54                                                         ` Linus Torvalds
2006-12-22 10:00                                                           ` Martin Michlmayr
2006-12-22 10:06                                                             ` Martin Michlmayr
2006-12-22 10:10                                                               ` Martin Michlmayr
2006-12-22 11:07                                                                 ` Martin Michlmayr
2006-12-22 15:30                                                                 ` Gordon Farquharson
2006-12-22 17:11                                                                   ` Martin Michlmayr
2006-12-22 10:17                                                             ` Andrew Morton
2006-12-22 11:12                                                               ` Martin Michlmayr
2006-12-22 12:24                                                               ` Andrei Popa
2006-12-22 12:32                                                                 ` Martin Michlmayr
2006-12-22 12:59                                                                   ` Martin Michlmayr
2006-12-22 13:25                                                                     ` Peter Zijlstra
2006-12-22 13:29                                                                       ` Peter Zijlstra
2006-12-22 17:56                                                                       ` Linus Torvalds
2006-12-22 19:20                                                                       ` Martin Michlmayr
2006-12-24  8:10                                                                         ` Gordon Farquharson
2006-12-24  8:43                                                                           ` Linus Torvalds
2006-12-24  8:57                                                                             ` Andrew Morton
2006-12-24  9:26                                                                               ` Linus Torvalds
2006-12-24 12:14                                                                               ` Andrei Popa
2006-12-24 12:26                                                                                 ` Andrei Popa
2006-12-24 12:30                                                                                   ` Andrew Morton
2006-12-24 12:31                                                                                 ` Andrew Morton
2006-12-24 16:45                                                                                   ` Andrei Popa
2006-12-24 17:16                                                                                     ` Linus Torvalds
2006-12-24 18:07                                                                                       ` Andrew Morton
2006-12-24 18:37                                                                                       ` Linus Torvalds
2006-12-24 19:18                                                                                         ` Linus Torvalds
2006-12-24 20:55                                                                                           ` Gordon Farquharson
2006-12-26 10:31                                                                                           ` Nick Piggin
2006-12-26 19:26                                                                                             ` Linus Torvalds
2006-12-27 12:32                                                                                               ` Jari Sundell
2006-12-27 12:44                                                                                               ` valdyn
2006-12-27 13:33                                                                                                 ` Jari Sundell
2007-01-07  2:06                                                                                               ` Tom Lanyon
2007-01-07  5:58                                                                                                 ` Tom Lanyon
2007-01-07  6:05                                                                                                 ` Andrew Morton
2006-12-24 21:21                                                                                         ` Michael S. Tsirkin
2006-12-24 19:27                                                                                       ` Gordon Farquharson [this message]
2006-12-24 19:35                                                                                         ` Linus Torvalds
2006-12-24 20:10                                                                                           ` Andrei Popa
2006-12-24 20:24                                                                                             ` Linus Torvalds
2006-12-24 20:30                                                                                               ` Andrei Popa
2006-12-26 17:51                                                                                               ` Al Viro
2006-12-26 17:58                                                                                                 ` Al Viro
2006-12-24 22:01                                                                                           ` Martin Michlmayr
2006-12-24 14:05                                                                               ` Martin Michlmayr
2006-12-26 16:17                                                                             ` Tobias Diedrich
2006-12-27  4:55                                                                               ` [PATCH] mm: fix page_mkclean_one David Miller
2006-12-27  7:00                                                                                 ` Linus Torvalds
2006-12-27  8:39                                                                                   ` Andrei Popa
2006-12-28  0:16                                                                                 ` Linus Torvalds
2006-12-28  0:39                                                                                   ` Linus Torvalds
2006-12-28  0:52                                                                                     ` David Miller
2006-12-28  3:04                                                                                       ` Linus Torvalds
2006-12-28  4:32                                                                                         ` Gordon Farquharson
2006-12-28  4:53                                                                                           ` Linus Torvalds
2006-12-28  5:20                                                                                             ` Gordon Farquharson
2006-12-28  5:41                                                                                               ` David Miller
2006-12-28  5:47                                                                                                 ` Gordon Farquharson
2006-12-28 10:13                                                                                               ` Russell King
2006-12-28 14:15                                                                                                 ` Gordon Farquharson
2006-12-28 15:53                                                                                                   ` Martin Michlmayr
2006-12-28 17:27                                                                                                 ` Linus Torvalds
2006-12-28 18:44                                                                                                   ` Russell King
2006-12-28 19:01                                                                                                     ` Linus Torvalds
     [not found]                                                                                             ` <97a0a9ac0612272115g4cce1f08n3c3c8498a6076bd5@mail.gmail.com>
     [not found]                                                                                               ` <Pine.LNX.4.64.0612272120180.4473@woody.osdl.org>
2006-12-28  5:38                                                                                                 ` Gordon Farquharson
2006-12-28  9:30                                                                                                   ` Martin Michlmayr
2006-12-28 10:16                                                                                                   ` Martin Michlmayr
2006-12-28 10:49                                                                                                     ` Russell King
2006-12-28 14:56                                                                                                       ` Martin Michlmayr
2006-12-28  5:58                                                                                                 ` Gordon Farquharson
2006-12-28 17:08                                                                                                   ` Linus Torvalds
2006-12-28  5:55                                                                                         ` Chen, Kenneth W
2006-12-28  6:10                                                                                           ` Chen, Kenneth W
2006-12-28  6:27                                                                                             ` David Miller
2006-12-28 17:10                                                                                             ` Linus Torvalds
2006-12-28  9:15                                                                                         ` Zhang, Yanmin
2006-12-28 17:15                                                                                           ` Linus Torvalds
2006-12-28 11:50                                                                                         ` Petri Kaukasoina
2006-12-28 15:09                                                                                         ` Guillaume Chazarain
2006-12-28 19:19                                                                                           ` Guillaume Chazarain
2006-12-28 19:28                                                                                             ` Linus Torvalds
2006-12-28 19:45                                                                                               ` Andrew Morton
2006-12-28 20:14                                                                                                 ` Linus Torvalds
2006-12-28 22:38                                                                                                   ` David Miller
2006-12-29  2:50                                                                                                     ` Segher Boessenkool
2006-12-29  6:48                                                                                                       ` Linus Torvalds
2006-12-29  8:58                                                                                                         ` Ok, explained.. (was Re: [PATCH] mm: fix page_mkclean_one) Linus Torvalds
2006-12-29 10:48                                                                                                           ` Linus Torvalds
2006-12-29 11:16                                                                                                             ` Andrei Popa
2006-12-29 12:09                                                                                                             ` Nick Piggin
2006-12-29 17:25                                                                                                               ` Linus Torvalds
2006-12-29 12:31                                                                                                             ` Ingo Molnar
2006-12-29 13:08                                                                                                             ` Martin Johansson
2006-12-29 14:08                                                                                                             ` Martin Michlmayr
2006-12-29 15:17                                                                                                               ` Stephen Clark
2006-12-29 15:54                                                                                                                 ` Martin Michlmayr
2006-12-29 22:16                                                                                                             ` Andrew Morton
2006-12-29 22:24                                                                                                               ` Andrew Morton
2006-12-29 22:42                                                                                                               ` Linus Torvalds
2006-12-29 23:32                                                                                                                 ` Theodore Tso
2006-12-29 23:59                                                                                                                   ` Linus Torvalds
2006-12-30  0:05                                                                                                                   ` Andrew Morton
2006-12-30  0:50                                                                                                                     ` Linus Torvalds
2006-12-29 23:51                                                                                                                 ` Andrew Morton
2006-12-30  0:11                                                                                                                   ` Linus Torvalds
2006-12-30  0:33                                                                                                                     ` Andrew Morton
2006-12-30  0:58                                                                                                                       ` Linus Torvalds
2006-12-30  1:16                                                                                                                         ` Andrew Morton
2006-12-29 15:27                                                                                                           ` Theodore Tso
2006-12-29 17:51                                                                                                             ` Linus Torvalds
2006-12-29 12:19                                                                                                         ` [patch] fix data corruption bug in __block_write_full_page() Ingo Molnar
2007-01-02 11:20                                                                                                           ` Christoph Hellwig
2007-01-02 12:06                                                                                                             ` Ingo Molnar
2007-01-02 12:16                                                                                                               ` Christoph Hellwig
2006-12-28 22:35                                                                                                 ` [PATCH] mm: fix page_mkclean_one Mike Galbraith
2006-12-22 15:01                                                                   ` [PATCH] mm: fix page_mkclean_one (was: 2.6.19 file content corruption on ext3) Patrick Mau
2006-12-23  8:15                                                                   ` Andrei Popa
2006-12-22 15:08                                                           ` Gordon Farquharson
2006-12-22 10:01                                                         ` Martin Michlmayr
2006-12-22 15:16                                                           ` Gordon Farquharson
2006-12-21 12:30                                                   ` Russell King
2006-12-21 12:36                                                     ` Russell King
2006-12-21 11:21                                               ` Martin Michlmayr
2006-12-20 22:11                                       ` Russell King
2006-12-21  8:18                                         ` Martin Michlmayr
2006-12-21  9:54                                           ` Russell King
2006-12-20 14:55                                 ` Martin Schwidefsky
2006-12-20 14:27                             ` 2.6.19 file content corruption on ext3 Martin Schwidefsky
2006-12-20  9:32                           ` Peter Zijlstra
2006-12-20 14:15                         ` Andrei Popa
2006-12-20 14:23                           ` Peter Zijlstra
2006-12-20 16:30                             ` Andrei Popa
2006-12-20 16:36                               ` Peter Zijlstra
2006-12-19  7:38                   ` Peter Zijlstra
2006-12-19  4:36           ` Nick Piggin
2006-12-19  6:34             ` Linus Torvalds
2006-12-19  6:51               ` Nick Piggin
2006-12-19  7:26                 ` Linus Torvalds
2006-12-19  8:04                   ` Linus Torvalds
2006-12-19  9:00                     ` Peter Zijlstra
2006-12-19  9:05                       ` Peter Zijlstra
     [not found]                     ` <4587B762.2030603@yahoo.com.au>
2006-12-19 10:32                       ` Andrew Morton
2006-12-19 10:42                         ` Nick Piggin
2006-12-19 10:47                         ` Andrew Morton
2006-12-19 10:52                         ` Peter Zijlstra
2006-12-19 10:58                           ` Nick Piggin
2006-12-19 11:51                             ` Peter Zijlstra
2006-12-19 10:55                         ` Nick Piggin
2006-12-19 16:51                       ` Linus Torvalds
2006-12-19 17:43                         ` Linus Torvalds
2006-12-19 18:59                           ` Linus Torvalds
2006-12-19 21:30                             ` Peter Zijlstra
2006-12-19 22:51                               ` Linus Torvalds
2006-12-19 22:58                                 ` Andrew Morton
2006-12-19 23:06                                   ` Peter Zijlstra
2006-12-19 23:07                                     ` Peter Zijlstra
2006-12-20  0:03                                     ` Linus Torvalds
2006-12-20  0:18                                       ` Andrew Morton
2006-12-20 18:02                               ` Stephen Clark
2006-12-20  5:56                             ` Jari Sundell
2006-12-19 21:56                           ` Florian Weimer
2006-12-21 13:03                           ` Peter Zijlstra
2006-12-21 20:40                             ` Andrew Morton
2006-12-19 20:03               ` dean gaudet
2006-12-19  7:22             ` Peter Zijlstra
2006-12-19  7:59               ` Nick Piggin
2006-12-19  8:14                 ` Linus Torvalds
2006-12-19  9:40                   ` Nick Piggin
2006-12-19 16:46                     ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=97a0a9ac0612241127u1051f7eay70065b03f27ae668@mail.gmail.com \
    --to=gordonfarquharson@gmail.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@osdl.org \
    --cc=andrei.popa@i-neo.ro \
    --cc=arjan@infradead.org \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=tbm@cyrius.com \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).