1. 24 Aug, 2009 2 commits
  2. 08 Sep, 2009 1 commit
    • Artem Bityutskiy's avatar
      This patch adds new operation to struct super_operations - sync_inodes, · b5fca757
      Artem Bityutskiy authored
      generic implementaion and changes fs-writeback.c:sync_sb_inodes() to call
      filesystem's sync_inodes if it is defined or generic implementaion otherwise.
      This new operation allows filesystem to decide itself what to flush.
      
      Reiser4 flushes dirty pages on basic of atoms, not of inodes.  sync_sb_inodes
      used to call address space flushing method (writepages) for every dirty inode.
       For reiser4 it caused having to commit atoms unnecessarily often.  This
      turned into substantial slowdown.  Having this method helped to fix that
      problem.
      
      akpm: this patch needs to be chnaged to remove the `sb' arg.
      Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Cc: Edward Shishkin <edward.shishkin@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b5fca757
  3. 24 Aug, 2009 1 commit
    • Edward Shishkin's avatar
      In accordance with reiser4 transactional model every dirty page should be · 5c025457
      Edward Shishkin authored
      "captured" by some atom.  However, outside reiser4 context dirty page can
      not be captured in some cases, as it is accompanied with specific work
      (jnode creation, etc).  Reiser4 recognizes such "anonymous" pages (i.e. 
      pages that were dirtied outside of reiser4) by the tag
      PAGECACHE_TAG_DIRTY.  Pages dirtied inside reiser4 context are not tagged
      at all: we don't need this.  Indeed, once page is dirtied and captured, it
      is attached to a jnode (a special header to keep a track of transactions).
      
      reiser4_set_page_dirty_internal() was the internal reiser4 function that
      set dirty bit without tagging the page.  Having such internal function led
      to real problems (incorrect task io accounting, etc.  because of not
      updating this internal "friend").
      
      Solution:
      
      The following patch adds a core library function that sets a dirty bit
      without tagging the page.
      
      Signed-off-by: Edward Shishkin<edward.shishkin@gmail.com>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5c025457
  4. 04 Jun, 2009 1 commit
  5. 24 Aug, 2009 1 commit
  6. 04 Jun, 2009 1 commit
  7. 24 Aug, 2009 1 commit
  8. 04 Aug, 2009 1 commit
  9. 25 Jun, 2009 1 commit
  10. 20 Jul, 2009 1 commit
  11. 03 Aug, 2009 1 commit
  12. 03 Sep, 2009 1 commit
  13. 02 Sep, 2009 1 commit
  14. 24 Aug, 2009 2 commits
  15. 25 Jun, 2009 1 commit
  16. 26 Aug, 2009 1 commit
  17. 11 Aug, 2009 2 commits
  18. 15 Jul, 2009 3 commits
  19. 23 Jul, 2009 1 commit
  20. 30 Jul, 2009 1 commit
  21. 24 Aug, 2009 1 commit
  22. 10 Sep, 2009 1 commit
    • Alexey Dobriyan's avatar
      It's unused. · f3725c8c
      Alexey Dobriyan authored
      It isn't needed -- read or write flag is already passed and sysctl
      shouldn't care about the rest.
      
      It _was_ used in two places at arch/frv for some reason.
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: James Morris <jmorris@namei.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      f3725c8c
  23. 24 Aug, 2009 1 commit
  24. 10 Sep, 2009 1 commit
  25. 17 Aug, 2009 1 commit
  26. 12 Aug, 2009 1 commit
    • Nils Carlson's avatar
      The periodic interrupt from drivers/char/hpet.c does not work correctly, · 7a6c798b
      Nils Carlson authored
      both when using the periodic capability of the hardware and while
      emulating the periodic interrupt (when hardware does not support periodic
      mode).
      
      With timers capable of periodic interrupts, the comparator field is first
      set with the period value followed by set of hidden accumulator, which has
      the side effect of overwriting the comparator value.  This results in
      wrong periodicity for the interrupts.  For, periodic interrupts to work,
      following steps are necessary, in that order.
      
      * Set config with Tn_VAL_SET_CNF bit
      
      * Write to hidden accumulator, the value written is the time when the
        first interrupt should be generated
      
      * Write compartor with period interval for subsequent interrupts
        (http://www.intel.com/hardwaredesign/hpetspec_1.pdf )
      
      When emulating periodic timer with timers not capable of periodic
      interrupt, driver is adding the period to counter value instead of
      comparator value, which causes slow drift when using this emulation.
      
      Also, driver seems to add hpetp->hp_delta both while setting up periodic
      interrupt and while emulating periodic interrupts with timers not capable
      of doing periodic interrupts.  This hp_delta will result in slower than
      expected interrupt rate and should not be used while setting the interval.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarNils Carlson <nils.carlson@ericsson.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      7a6c798b
  27. 04 Aug, 2009 1 commit
  28. 24 Aug, 2009 2 commits
  29. 18 Aug, 2009 1 commit
    • Renzo Davoli's avatar
      There are two useless lines in fs/char_dev.c. · 5529cb8a
      Renzo Davoli authored
      In register_chrdev there is a loop to change all '/' into '!' in the
      kernel object name.
      This code is useless as the same substitution is in kobject_set_name_vargs in
      lib/kobject.c:
      228         /* ewww... some of these buggers have '/' in the name ... */
      229         while ((s = strchr(kobj->name, '/')))
      230                 s[0] = '!';
      
      kobject_set_name_vargs is called by kobject_set_name.
      kobject_set_name is called just above the useless loop.
      Signed-off-by: default avatarRenzo Davoli <renzo@cs.unibo.it>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5529cb8a
  30. 21 Jul, 2009 1 commit
  31. 02 Jul, 2009 1 commit
  32. 20 Jul, 2009 1 commit
  33. 01 Jul, 2009 2 commits