1. 24 Aug, 2009 1 commit
  2. 13 Jul, 2009 1 commit
    • Alexey Dobriyan's avatar
      "[PATCH] Fix leaks on /proc/{*/sched,sched_debug,timer_list,timer_stats}" and · b8a12a62
      Alexey Dobriyan authored
      "[PATCH] Fix leak on /proc/lockdep_stats" fixed 5 leaks which happen if one
      uses single_open() as .open function and seq_release() as .release function.
      
      Let's add small amount of runtime checking.
      
      Sample output is:
      
      	memory leak: 'timer_list'
      	WARNING: at fs/seq_file.c:289 seq_release()
      	 [<c015e311>] seq_release+0x53/0x68
      	 [<c0171bd8>] proc_reg_release+0x63/0x74
      	 [<c0149877>] __fput+0x28/0xd3
      	 [<c0147681>] filp_close+0x48/0x4f
      	 [<c014876a>] sys_close+0x74/0xbe
      	 [<c010248e>] sysenter_past_esp+0x5f/0x85
      	 =======================
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@sw.ru>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      b8a12a62
  3. 15 May, 2007 1 commit
    • Hugh Dickins's avatar
      Jayson Santos has sighted mm/prio_tree.c:78,79 BUGs (kernel bugzilla 8446), · 8920170a
      Hugh Dickins authored
      and one was sighted a couple of years ago.  No reason yet to suppose
      they're prio_tree bugs, but we can't tell much about them without seeing
      the vmas.
      
      So dump vma and the one it's supposed to resemble: I had expected to use
      print_hex_dump(), but that's designed for u8 dumps, whereas almost every
      field of vm_area_struct is either a pointer or an unsigned long - which
      look nonsense dumped as u8s.
      
      Replace the two BUG_ONs by a single WARN_ON; and if it fires, just keep
      this vma out of the tree (truncation and swapout won't be able to find it).
       How safe this is depends on what the error really is; but we hold a file's
      i_mmap_lock here, so it may be impossible to recover from BUG_ON.
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Cc: Jayson Santos <jaysonsantos2003@yahoo.com.br>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      8920170a
  4. 13 Jul, 2009 1 commit
    • Linus Torvalds's avatar
      The all-ones value is not just a "device didn't exist" case, it's also · 45434f4c
      Linus Torvalds authored
      potentially a quite valid value, so not restoring it would be wrong.
      
      What *would* be interesting is to hear where the bad values came from in
      the first place.  It sounds like the device state is saved after the PCI
      bus controller in front of the device has been crapped on, resulting in the
      PCI config cycles never reaching the device at all.
      
      Something along this patch (together with suspend/resume debugging output)
      migth help pinpoint it.  But it really sounds like something totally
      brokenly turned off the PCI bridge (some ACPI shutdown crud?  I wouldn't be
      entirely surprised)
      
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      45434f4c
  5. 04 Sep, 2009 1 commit
    • Olaf Hering's avatar
      On Sun, Feb 11, Paul Rolland wrote: · 5109d2e9
      Olaf Hering authored
      > I'm facing something quite strange... When booting one of these kernels
      > (it's a new machine, I've not been running older kernels), the boot message
      > says :
      >
      > ACPI: PCI Interrupt 0000:04:00.0[A] -> GSI 19 (level, low) -> IRQ 19
      > sky2 v1.10 addr 0xff8fc000 irq 19 Yukon-EC (0xb6) rev 2
      > sky2 eth0: addr 00:18:f3:e0:5d:d4
      > ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 16 (level, low) -> IRQ 16
      > sky2 v1.10 addr 0xff7fc000 irq 16 Yukon-EC (0xb6) rev 2
      > sky2 eth1: addr 00:18:f3:e0:36:fd
      >
      > So, I'm expecting two interfaces : eth0 and eth1
      >
      > Unfortunately, at the end of the boot process, I can find eth1 and eth2,
      
      Unfortunately, this patch was not applied to mainline last year.
      Maybe this year.
      
      Keep track about which network interface names were renamed after the
      network device driver printed its banner.
      Signed-off-by: default avatarOlaf Hering <olaf@aepfle.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5109d2e9
  6. 24 Aug, 2009 1 commit
    • Mel Gorman's avatar
      A number of bug reports have been submitted related to memory initialisation · 52bd57e3
      Mel Gorman authored
      that would have been easier to debug if the PFN of page addresses were
      available.  The dmesg output is often insufficient to find that information so
      debugging patches need to be sent to the reporting user.
      
      This patch prints out information on the memmap when it is being allocated and
      the sizeof(struct page) when loglevel is set high enough.  In most
      architectures, this output is produced in generic code.  x86_64 and ia64 both
      setup node_mem_map in an architecture-specific manner requiring arch-specfic
      changes.  Th memmap information can be used to translate any valid page
      address into a PFN.  page_to_pfn() cannot be used directly in bad_page()
      because there is no guarantee that the address pointer is valid in any way and
      the translation can produce garbage.
      
      Information on memmap is not printed out for the SPARSEMEM memory model.  This
      only applies to FLATMEM and DISCONTIG configurations.
      Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      52bd57e3
  7. 20 Apr, 2009 1 commit
  8. 13 Jul, 2009 1 commit
    • Andrew Morton's avatar
      - Add some help text · 5658ecb4
      Andrew Morton authored
      - Force the feature on for now, for testing.
      
      Cc: Al Viro <viro@ftp.linux.org.uk>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Cc: Alexander Nyberg <alexn@telia.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Christoph Lameter <cl@linux-foundation.org>.com>
      Cc: Ravikiran Thirumalai <kiran@scalex86.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      5658ecb4
  9. 24 Aug, 2009 1 commit
    • David Howells's avatar
      The attached patch adds a module for testing and benchmarking mutexes, · cc2f37c2
      David Howells authored
      semaphores and R/W semaphores.
      
      Using it is simple:
      
      	insmod synchro-test.ko <args>
      
      It will exit with error ENOANO after running the tests and printing the
      results to the kernel console log.
      
      The available arguments are:
      
       (*) mx=N
      
      	Start up to N mutex thrashing threads, where N is at most 20. All will
      	try and thrash the same mutex.
      
       (*) sm=N
      
      	Start up to N counting semaphore thrashing threads, where N is at most
      	20. All will try and thrash the same semaphore.
      
       (*) ism=M
      
      	Initialise the counting semaphore with M, where M is any positive
      	integer greater than zero. The default is 4.
      
       (*) rd=N
       (*) wr=O
       (*) dg=P
      
      	Start up to N reader thrashing threads, O writer thrashing threads and
      	P downgrader thrashing threads, where N, O and P are at most 20
      	apiece. All will try and thrash the same read/write semaphore.
      
       (*) elapse=N
      
      	Run the tests for N seconds. The default is 5.
      
       (*) load=N
      
      	Each thread delays for N uS whilst holding the lock. The dfault is 0.
      
       (*) interval=N
      
      	Each thread delays for N uS whilst not holding the lock. The default
      	is 0.
      
       (*) do_sched=1
      
      	Each thread will call schedule if required after each iteration.
      
       (*) v=1
      
      	Print more verbose information, including a thread iteration
      	distribution list.
      
      The module should be enabled by turning on CONFIG_DEBUG_SYNCHRO_TEST to "m".
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      cc2f37c2
  10. 13 Jul, 2009 1 commit
  11. 24 Aug, 2009 3 commits
  12. 10 Sep, 2009 1 commit
  13. 05 Sep, 2009 1 commit
  14. 30 Jun, 2009 1 commit
  15. 24 Aug, 2009 1 commit
  16. 18 Feb, 2009 1 commit
  17. 17 Feb, 2009 1 commit
  18. 31 Dec, 2008 1 commit
  19. 09 Feb, 2009 1 commit
  20. 27 Nov, 2008 2 commits
  21. 31 Dec, 2008 2 commits
  22. 13 Jul, 2009 1 commit
    • Vladimir Saveliev's avatar
      This is the main reiserfs4 filesystem. · 76950d31
      Vladimir Saveliev authored
      Q&A wrt this patch:
      
      - A really short guide to how to get up and running with this filesystem.
      
              Reiser4 is a file system based on dancing tree algorithms, and
              is described at http://www.namesys.com.  One should be able to get it
              up and running just like any of the other filesystems supported by
              Linux.  Configure it to be compiled either builtin or as a module. 
              Create reiser4 filesystem with mkfs.reiser4, mount and use it.  More
              detailed info can be found at
              http://thebsh.namesys.com/snapshots/LATEST/READ.ME.
      
      - The direct URL which people use to obtain the mkfs tool for this
        filesystem.  Also fsck and anything else.
      
              Reiser4 userland tools can be obtained at
              ftp://ftp.namesys.com/pub/reiser4progs. 
              ftp://ftp.namesys.com/pub/reiser4progs/README contains detailed
              instructions on how to compile and install these tools.  Also all
              reiser4 progs have man pages.  
      
      - Any known shortcomings, caveats, etc.
      
              Reiser4 has been tested on i386 yet only.  Quota support is
              not ready yet.  Should be ready soon.  Reiser4 was tested extensively,
              and we got to where the mailing list was not able to hit any bugs, but
              then we told people that, got an order of magnitude increase in users,
              and they are able to hit bugs that we are working on now.
      
              Reiser's Law of Software Engineering: Each order of magnitude
              increase in users finds more bugs, in a quantity equal to the previous
              order of magnitude increase in users.  Success for software developers
              is measured by how long the frustration lasts.
      
              Only the very core functionality is working.  Exotic plugins,
              an API for multiple operation transactions and accessing multiple
              small files in one syscall, compression, inheritance, all have been
              postponed until after the core functionality is shipped.  The
              compression plugin needs a code review before anyone should use it.
      
      - A statement on compatibility with reiserfs3 filesytems.
      
              To upgrade from reiserfs V3 to V4, use tar, or sponsor us to
              write a convertfs.
      
      - Bear in mind that people will immediately benchmark this filesytem, and
        first impressions count.  Now is your chance to communicate any tuning
        guidelines, mount options or whatever which you'd like people to understand
        BEFORE they start publishing benchmark info.
      
              Reiser4 is not tuned for fsync/sync/O_SYNC performance yet.  
      
              If you see results that are much different from those at
              www.namesys.com/benchmarks.html, let us know.  If you see performance
              characteristics that don't quite make sense, email
              reiserfs-list@namesys.com, such things are always of interest.
      
              reiser4 is not tuned for mmaping and dirtying more than
              physical ram like IOzone does.  This is quite different in its code
              path from writing and dirtying more than physical ram.  There are
              those who think that what IOZone does is rarely done by real programs,
              and therefor we should not bother to optimize what it does.  All I
              know is, this month we are not optimized for it.
      
              Please consider its space savings when you benchmark it also.
      
      [michal.k.k.piotrowski@gmail.com: kill #include "linux/config.h"]
      [akpm@linux-foundation.org: reiser4_drop_page: don't call remove_from_page_cache]
      [bunk@stusta.de: fs/reiser4/: possible cleanups]
      Signed-off-by: default avatarVladimir Saveliev <vs@namesys.com>
      Signed-off-by: default avatarHans Reiser <reiser@namesys.com>
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      reiser4: fix for drop-unused-semaphores.patch
      EDESC
      Wait for tail conversion completion when acquiring exclusive access by
      . mmap_unix_file()
      . setattr_unix_file()
      . release_unix_file()
      Update comments.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Cc Jonathan Briggs <jbriggs@esoft.com>
      DESC
      reiser4-slab-allocators-remove-slab_debug_initial-flag
      EDESC
      Cc: Christoph Lameter <cl@linux-foundation.org>.com>
      DESC
      reiser4: use simple_prepare_write to zero page data
      EDESC
      It's common for file systems to need to zero data on either side of a
      write, if a page is not Uptodate during prepare_write.  It just so happens
      that simple_prepare_write() in libfs.c does exactly that, so we can avoid
      duplication and just call that function to zero page data.
      Signed-off-by: default avatarNate Diller <nate.diller@gmail.com>
      Cc: Vladimir Saveliev <vs@namesys.com>
      Cc: Edward Shishkin <edward@namesys.com>
      DESC
      reiser4-fix
      EDESC
      
      DESC
      reiser4: use zero_user_page
      EDESC
      Use zero_user_page() instead of open-coding it.
      Signed-off-by: default avatarNate Diller <nate.diller@gmail.com>
      Cc: Vladimir Saveliev <vs@namesys.com>
      Cc: Edward Shishkin <edward@namesys.com>
      DESC
      reiser4: remove typedefs
      EDESC
      . Reduce number of typedefs from 289 to 248
      . Remove unused file plugin/file/invert.c
      . Update comments
      
      DESC
      reiser4: fix write_extent
      EDESC
      Prepared-by Ignatich <ignatich@gmail.com>
      
      Fix reiser4_write_extent():
         1) handling incomplete writes missed in reiser4-temp-fix.patch
         2) bugs in the case of returned errors
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      reiser4 make sync_inodes non-void
      EDESC
      Make reiser4_sync_inodes non-void
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      Reiser4: Drop 'size' argument from bio_endio and bi_end_io
      EDESC
      Reiser4: Drop 'size' argument from bio_endio and bi_end_io
      
      This patch pushes into Reiser4 the changes introduced by
      commit 6712ecf8:
      
      	As bi_end_io is only called once when the request is complete,
      	the 'size' argument is now redundant.  Remove it.
      
      	Now there is no need for bio_endio to subtract the size completed
      	from bi_size.  So don't do that either.
      
      	While we are at it, change bi_end_io to return void.
      Signed-off-by: default avatarLaurent Riffard <laurent.riffard@free.fr>
      Acked-by: default avatarJens Axboe <jens.axboe@oracle.com>
      Acked-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      mm: clean up and kernelify shrinker registration
      EDESC
      I can never remember what the function to register to receive VM pressure
      is called.  I have to trace down from __alloc_pages() to find it.
      
      It's called "set_shrinker()", and it needs Your Help.
      
      1) Don't hide struct shrinker.  It contains no magic.
      2) Don't allocate "struct shrinker".  It's not helpful.
      3) Call them "register_shrinker" and "unregister_shrinker".
      4) Call the function "shrink" not "shrinker".
      5) Reduce the 17 lines of waffly comments to 13, but document it properly.
      
      The comment in reiser4 makes me a little queasy.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Vladimir Saveliev <vs@namesys.com>
      Acked-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      reiser4: fix NULL dereference in __mnt_is_readonly in ftruncate()
      EDESC
      Signed-off-by: default avatarDave Hansen <haveblue@us.ibm.com>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      reiser4: fix extent2tail
      EDESC
      Fixed bug in extent2tail conversion.
      
      Bug description:
      when converting partially converted file
      (with flag REISER4_PART_MIXED installed)
      reiser4_cut_tree() starts to cut old metatada
      from wrong offset. Result is data corruption.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      reiser4: fix read_tail
      EDESC
      Update hint when reading tails
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      reiser4: fix unix-file readpages filler
      EDESC
      Protect page (via incrementing page count) from being reclaimed when looking
      for extent pointer in unix-file specific readpages filler.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      DESC
      reiser4: fix readpage_unix_file
      EDESC
      . If nominated (by VFS) page is out of file size, then fill it
        by zeros instead of returning -EINVAL (this prevents returning
        an unexpected error (-EINVAL) by some apps that don't check
        file size).
      
      . Check if the page became uptodate while it was being unlocked.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Cc: Zan Lynx <zlynx@acm.org>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      reiser4: fix for new aops patches
      EDESC
      Cc: Vladimir Saveliev <vs@namesys.com>
      Cc: Edward Shishkin <edward@namesys.com>
      DESC
      reiser4: do not allocate struct file on stack
      EDESC
      Do not allocate struct file on stack, pass the persistent one instead.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Tested-by: default avatarZan Lynx <zlynx@acm.org>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      git-block-vs-reiser4
      EDESC
      Hope this is right.
      
      Hope you know what you're doing ;)
      
      Cc: Vladimir Saveliev <vs@namesys.com>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      DESC
      reiser4: cryptcompress misc fixups
      EDESC
      .  Fix a race (reproducible by fsx + sync (1)) between
        checkin_page_cluster operations: serialize them via special per-inode
        checkin_mutex (usual i_mutex is not suitable for this purpose, as
        ->writepages() also calls checkin_page_cluster();
      
      .  Add comments for checkin/checkout technique for synchronization of
        primary and secondary caches with proof of correctness;
      
      .  Fix missed right neighbor when updating disk clusters by
        handle_pos_on_leaf() during squalloc (should use upper levels to get
        expected non-connected neighbor);
      
      .  Resolve a race between read and truncate (when read finds partially
        truncated and, hence, unrecoverable disk cluster) via keeping a track of
        leftmost truncated disk clusters in cryptcompress-specific part of inode;
      
      . Introduce size translators and size modulators for
        common needs;
      
      . Update comments;
      
      . Rename badly sounding function names;
      
      . Fix coding style;
      
      . Add my part of credits.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      reiser4: cryptcompress misc fixups-2
      EDESC
      Check a file plugin id before manipulating with plugin-specific counter.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      fs/reiser4/plugin/: make 3 functions static
      EDESC
      This patch makes the following needlessly global functions static:
      - file/cryptcompress.c: __put_page_cluster()
      - file/cryptcompress.c: put_hint_cluster()
      - item/ctail.c: ctail_read_disk_cluster()
      Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      reiser4: change error code base
      EDESC
      Change REISER4_ERROR_CODE_BASE to 10000 to not overlap real errnos
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      reiser4: use lzo library functions
      EDESC
      . Convert Reiser4 to use lzo implementation in lib/lzo/ instead of
        including its own copy of minilzo;
      . Do not set zeros to workmem region.
      Signed-off-by: default avatarEdward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      fs/reiser4/plugin/file/cryptcompress.c: kmalloc + memset conversion to kzalloc
      EDESC
       fs/reiser4/plugin/file/cryptcompress.c | 101386 -> 101352 (-34 bytes)
       fs/reiser4/plugin/file/cryptcompress.o | 456784 -> 456644 (-140 bytes)
      Signed-off-by: default avatarMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      reiser4: kmalloc + memset conversion to kzalloc
      EDESC
      Signed-off-by: default avatarMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      fs/reiser4/init_super.c: kmalloc + memset conversion to kzalloc
      EDESC
       fs/reiser4/init_super.c | 19283 -> 19246 (-37 bytes)
       fs/reiser4/init_super.o | 155348 -> 155152 (-196 bytes)
      Signed-off-by: default avatarMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      fs/reiser4/plugin/inode_ops_rename.c: kmalloc + memset conversion to kzalloc
      EDESC
       fs/reiser4/plugin/inode_ops_rename.c | 28474 -> 28344 (-130 bytes)
       fs/reiser4/plugin/inode_ops_rename.o | 142600 -> 142476 (-124 bytes)
      Signed-off-by: default avatarMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      fs/reiser4/ktxnmgrd.c: kmalloc + memset conversion to kzalloc
      EDESC
       fs/reiser4/ktxnmgrd.c | 5314 -> 5277 (-37 bytes)
       fs/reiser4/ktxnmgrd.o | 131624 -> 131496 (-128 bytes)
      Signed-off-by: default avatarMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Cc: Edward Shishkin <edward@namesys.com>
      Cc: "Vladimir V. Saveliev" <vs@namesys.com>
      DESC
      Use helpers to obtain task pid in printks
      EDESC
      The task_struct->pid member is going to be deprecated, so start
      using the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in
      the kernel.
      
      The first thing to start with is the pid, printed to dmesg - in
      this case we may safely use task_pid_nr(). Besides, printks produce
      more (much more) than a half of all the explicit pid usage.
      Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
      DESC
      Subject: [PATCH 1/2] remove asm/bitops.h includes
      EDESC
      remove asm/bitops.h includes
      
      including asm/bitops directly may cause compile errors. don't include it
      and include linux/bitops instead. next patch will deny including asm header
      directly.
      
      Cc: Adrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
      76950d31
  23. 24 Aug, 2009 3 commits
  24. 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
  25. 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
  26. 04 Jun, 2009 1 commit
  27. 24 Aug, 2009 1 commit
  28. 04 Jun, 2009 1 commit
  29. 24 Aug, 2009 1 commit
  30. 04 Aug, 2009 1 commit
  31. 25 Jun, 2009 1 commit
  32. 20 Jul, 2009 1 commit
  33. 03 Aug, 2009 1 commit
  34. 03 Sep, 2009 1 commit