]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] give swapper_space a set_page_dirty a_op
authorAndrew Morton <akpm@zip.com.au>
Sun, 2 Jun 2002 10:23:30 +0000 (03:23 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 2 Jun 2002 10:23:30 +0000 (03:23 -0700)
Give swapper_space a ->set_page_dirty() address_space_operation.

So swapcache pages do not need special-casing in
set_page_dirty_buffers().

mm/page-writeback.c
mm/swap_state.c

index 303d6a38d34fda12361bf4a1846145ef4d295086..082e8fb8cb16e3a0735c94f4ee9799a402024e7c 100644 (file)
@@ -497,7 +497,7 @@ int __set_page_dirty_buffers(struct page *page)
 
        spin_lock(&mapping->private_lock);
 
-       if (page_has_buffers(page) && !PageSwapCache(page)) {
+       if (page_has_buffers(page)) {
                struct buffer_head *head = page_buffers(page);
                struct buffer_head *bh = head;
 
index 698adfc727b955da0111fc22be58a18975dc42b7..976fc4744e7cef7b754b25e193c3da42cf1833a7 100644 (file)
@@ -48,9 +48,10 @@ static int swap_vm_writeback(struct page *page, int *nr_to_write)
 }
 
 static struct address_space_operations swap_aops = {
-       vm_writeback: swap_vm_writeback,
-       writepage: swap_writepage,
-       sync_page: block_sync_page,
+       vm_writeback:   swap_vm_writeback,
+       writepage:      swap_writepage,
+       sync_page:      block_sync_page,
+       set_page_dirty: __set_page_dirty_nobuffers,
 };
 
 /*