]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Jul 2008 15:36:38 +0000 (08:36 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 15 Jul 2008 15:36:38 +0000 (08:36 -0700)
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (61 commits)
  ext4: Documention update for new ordered mode and delayed allocation
  ext4: do not set extents feature from the kernel
  ext4: Don't allow nonextenst mount option for large filesystem
  ext4: Enable delalloc by default.
  ext4: delayed allocation i_blocks fix for stat
  ext4: fix delalloc i_disksize early update issue
  ext4: Handle page without buffers in ext4_*_writepage()
  ext4: Add ordered mode support for delalloc
  ext4: Invert lock ordering of page_lock and transaction start in delalloc
  mm: Add range_cont mode for writeback
  ext4: delayed allocation ENOSPC handling
  percpu_counter: new function percpu_counter_sum_and_set
  ext4: Add delayed allocation support in data=writeback mode
  vfs: add hooks for ext4's delayed allocation support
  jbd2: Remove data=ordered mode support using jbd buffer heads
  ext4: Use new framework for data=ordered mode in JBD2
  jbd2: Implement data=ordered mode handling via inodes
  vfs: export filemap_fdatawrite_range()
  ext4: Fix lock inversion in ext4_ext_truncate()
  ext4: Invert the locking order of page_lock and transaction start
  ...

1  2 
include/linux/fs.h
include/linux/writeback.h
mm/page-writeback.c

diff --combined include/linux/fs.h
index faac13e2cc5c75b0afe4c940cc54151d11b614d3,97f992adc62d14880e56fa7babc87a0e6527e371..52e510a0aec2715baa3bacef354cff909f4e79ae
@@@ -1740,6 -1740,8 +1740,8 @@@ extern int wait_on_page_writeback_range
                                pgoff_t start, pgoff_t end);
  extern int __filemap_fdatawrite_range(struct address_space *mapping,
                                loff_t start, loff_t end, int sync_mode);
+ extern int filemap_fdatawrite_range(struct address_space *mapping,
+                               loff_t start, loff_t end);
  
  extern long do_fsync(struct file *file, int datasync);
  extern void sync_supers(void);
@@@ -1870,8 -1872,7 +1872,8 @@@ extern voi
  file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
  extern loff_t no_llseek(struct file *file, loff_t offset, int origin);
  extern loff_t generic_file_llseek(struct file *file, loff_t offset, int origin);
 -extern loff_t remote_llseek(struct file *file, loff_t offset, int origin);
 +extern loff_t generic_file_llseek_unlocked(struct file *file, loff_t offset,
 +                      int origin);
  extern int generic_file_open(struct inode * inode, struct file * filp);
  extern int nonseekable_open(struct inode * inode, struct file * filp);
  
index bd91987c065fcd1f923a5cd05d6f781c3f685aab,0d8573e6b9ec24364bbab8c6c1e827946e483c58..12b15c561a1f1ca3dcfe91c9f64e439857fc6bd6
@@@ -63,6 -63,7 +63,7 @@@ struct writeback_control 
        unsigned for_writepages:1;      /* This is a writepages() call */
        unsigned range_cyclic:1;        /* range_start is cyclic */
        unsigned more_io:1;             /* more io to be dispatched */
+       unsigned range_cont:1;
  };
  
  /*
@@@ -105,8 -106,6 +106,8 @@@ extern int vm_highmem_is_dirtyable
  extern int block_dump;
  extern int laptop_mode;
  
 +extern unsigned long determine_dirtyable_memory(void);
 +
  extern int dirty_ratio_handler(struct ctl_table *table, int write,
                struct file *filp, void __user *buffer, size_t *lenp,
                loff_t *ppos);
diff --combined mm/page-writeback.c
index b38f700825fca31b81a48ecce6d60b7856bfcf84,ded57d52806052deb17a5fdadbda6dac3dca9799..94c6d8988ab3239019ecc720b7ac0624e06016df
@@@ -126,6 -126,8 +126,6 @@@ static void background_writeout(unsigne
  static struct prop_descriptor vm_completions;
  static struct prop_descriptor vm_dirties;
  
 -static unsigned long determine_dirtyable_memory(void);
 -
  /*
   * couple the period to the dirty_ratio:
   *
@@@ -345,13 -347,7 +345,13 @@@ static unsigned long highmem_dirtyable_
  #endif
  }
  
 -static unsigned long determine_dirtyable_memory(void)
 +/**
 + * determine_dirtyable_memory - amount of memory that may be used
 + *
 + * Returns the numebr of pages that can currently be freed and used
 + * by the kernel for direct mappings.
 + */
 +unsigned long determine_dirtyable_memory(void)
  {
        unsigned long x;
  
@@@ -960,6 -956,9 +960,9 @@@ retry
        }
        if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
                mapping->writeback_index = index;
+       if (wbc->range_cont)
+               wbc->range_start = index << PAGE_CACHE_SHIFT;
        return ret;
  }
  EXPORT_SYMBOL(write_cache_pages);