]> git.ipfire.org Git - people/ms/linux.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
authorLinus Torvalds <torvalds@g5.osdl.org>
Fri, 28 Oct 2005 19:44:24 +0000 (12:44 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 28 Oct 2005 19:44:24 +0000 (12:44 -0700)
1  2 
fs/jfs/jfs_metapage.c

diff --combined fs/jfs/jfs_metapage.c
index eeb37d70e6509439498aa224b7f00f723d00270e,c81c6438fce5c495fbc2930dcd3a1d302c364683..26091a5f88d43a7c3d14a86b4c5de32cbc6cc2b2
@@@ -198,7 -198,7 +198,7 @@@ static void init_once(void *foo, kmem_c
        }
  }
  
 -static inline struct metapage *alloc_metapage(unsigned int gfp_mask)
 +static inline struct metapage *alloc_metapage(gfp_t gfp_mask)
  {
        return mempool_alloc(metapage_mempool, gfp_mask);
  }
@@@ -395,6 -395,12 +395,12 @@@ static int metapage_writepage(struct pa
  
                if (mp->nohomeok && !test_bit(META_forcewrite, &mp->flag)) {
                        redirty = 1;
+                       /*
+                        * Make sure this page isn't blocked indefinitely.
+                        * If the journal isn't undergoing I/O, push it
+                        */
+                       if (mp->log && !(mp->log->cflag & logGC_PAGEOUT))
+                               jfs_flush_journal(mp->log, 0);
                        continue;
                }
  
@@@ -534,7 -540,7 +540,7 @@@ add_failed
        return -EIO;
  }
  
 -static int metapage_releasepage(struct page *page, int gfp_mask)
 +static int metapage_releasepage(struct page *page, gfp_t gfp_mask)
  {
        struct metapage *mp;
        int busy = 0;