1. 29 10月, 2006 9 次提交
    • D
      [PATCH] VFS: Fix an error in unused dentry counting · f8713576
      David Howells 提交于
      With Vasily Averin <vvs@sw.ru>
      
      Fix an error in unused dentry counting in shrink_dcache_for_umount_subtree()
      in which the count is modified without the dcache_lock held.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Cc: Vasily Averin <vvs@sw.ru>
      Cc: Neil Brown <neilb@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f8713576
    • V
      [PATCH] missing unused dentry in prune_dcache()? · 6eac3f93
      Vasily Averin 提交于
      On the the following patch:
      http://linux.bkbits.net:8080/linux-2.6/gnupatch@449b144ecSF1rYskg3q-SeR2vf88zg
      
      # ChangeSet
      #   2006/06/22 15:05:57-07:00 neilb@suse.de
      #   [PATCH] Fix dcache race during umount
      
      #   If prune_dcache finds a dentry that it cannot free, it leaves it where it
      #   is (at the tail of the list) and exits, on the assumption that some other
      #   thread will be removing that dentry soon.
      
      However as far as I see this comment is not correct: when we cannot take
      s_umount rw_semaphore (for example because it was taken in do_remount) this
      dentry is already extracted from dentry_unused list and we do not add it
      into the list again.  Therefore dentry will not be found by prune_dcache()
      and shrink_dcache_sb() and will leave in memory very long time until the
      partition will be unmounted.
      
      The patch adds this dentry into tail of the dentry_unused list.
      Signed-off-by: NVasily Averin <vvs@sw.ru>
      Cc: Neil Brown <neilb@suse.de>
      Acked-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6eac3f93
    • H
      [PATCH] hugetlb: fix prio_tree unit · 856fc295
      Hugh Dickins 提交于
      hugetlb_vmtruncate_list was misconverted to prio_tree: its prio_tree is in
      units of PAGE_SIZE (PAGE_CACHE_SIZE) like any other, not HPAGE_SIZE (whereas
      its radix_tree is kept in units of HPAGE_SIZE, otherwise slots would be
      absurdly sparse).
      
      At first I thought the error benign, just calling __unmap_hugepage_range on
      more vmas than necessary; but on 32-bit machines, when the prio_tree is
      searched correctly, it happens to ensure the v_offset calculation won't
      overflow.  As it stood, when truncating at or beyond 4GB, it was liable to
      discard pages COWed from lower offsets; or even to clear pmd entries of
      preceding vmas, triggering exit_mmap's BUG_ON(nr_ptes).
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Adam Litke <agl@us.ibm.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      856fc295
    • H
      [PATCH] hugetlb: fix size=4G parsing · b9d7e6ae
      Hugh Dickins 提交于
      On 32-bit machines, mount -t hugetlbfs -o size=4G gave a 0GB filesystem,
      size=5G gave a 1GB filesystem etc: there's no point in masking size with
      HPAGE_MASK just before shifting its lower bits away, and since HPAGE_MASK is a
      UL, that removed all the higher bits of the unsigned long long size.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Cc: Adam Litke <agl@us.ibm.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b9d7e6ae
    • P
      [PATCH] Fix potential OOPs in blkdev_open() · 6a2aae06
      Pavel Emelianov 提交于
      blkdev_open() calls bc_acquire() to get a struct block_device.  Since
      bc_acquire() may return NULL when system is out of memory an appropriate
      check is required.
      Signed-off-by: NPavel Emelianov <xemul@openvz.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6a2aae06
    • E
      [PATCH] jbd2: journal_dirty_data re-check for unmapped buffers · 9b57988d
      Eric Sandeen 提交于
      When running several fsx's and other filesystem stress tests, we found
      cases where an unmapped buffer was still being sent to submit_bh by the
      ext3 dirty data journaling code.
      
      I saw this happen in two ways, both related to another thread doing a
      truncate which would unmap the buffer in question.
      
      Either we would get into journal_dirty_data with a bh which was already
      unmapped (although journal_dirty_data_fn had checked for this earlier, the
      state was not locked at that point), or it would get unmapped in the middle
      of journal_dirty_data when we dropped locks to call sync_dirty_buffer.
      
      By re-checking for mapped state after we've acquired the bh state lock, we
      should avoid these races.  If we find a buffer which is no longer mapped,
      we essentially ignore it, because journal_unmap_buffer has already decided
      that this buffer can go away.
      
      I've also added tracepoints in these two cases, and made a couple other
      tracepoint changes that I found useful in debugging this.
      Signed-off-by: NEric Sandeen <esandeen@redhat.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b57988d
    • E
      [PATCH] jbd: journal_dirty_data re-check for unmapped buffers · f58a74dc
      Eric Sandeen 提交于
      When running several fsx's and other filesystem stress tests, we found
      cases where an unmapped buffer was still being sent to submit_bh by the
      ext3 dirty data journaling code.
      
      I saw this happen in two ways, both related to another thread doing a
      truncate which would unmap the buffer in question.
      
      Either we would get into journal_dirty_data with a bh which was already
      unmapped (although journal_dirty_data_fn had checked for this earlier, the
      state was not locked at that point), or it would get unmapped in the middle
      of journal_dirty_data when we dropped locks to call sync_dirty_buffer.
      
      By re-checking for mapped state after we've acquired the bh state lock, we
      should avoid these races.  If we find a buffer which is no longer mapped,
      we essentially ignore it, because journal_unmap_buffer has already decided
      that this buffer can go away.
      
      I've also added tracepoints in these two cases, and made a couple other
      tracepoint changes that I found useful in debugging this.
      Signed-off-by: NEric Sandeen <esandeen@redhat.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f58a74dc
    • R
      [PATCH] ext4: fix printk format warnings · 1939e49a
      Randy Dunlap 提交于
      fs/ext4/resize.c:72: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:76: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:81: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:85: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:89: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:89: warning: long long unsigned int format, __u64 arg (arg 5)
      fs/ext4/resize.c:93: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:93: warning: long long unsigned int format, __u64 arg (arg 5)
      fs/ext4/resize.c:98: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:103: warning: long long unsigned int format, __u64 arg (arg 4)
      fs/ext4/resize.c:109: warning: long long unsigned int format, __u64 arg (arg 4)
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1939e49a
    • N
      [PATCH] mm: clean up pagecache allocation · 2ae88149
      Nick Piggin 提交于
      - Consolidate page_cache_alloc
      
      - Fix splice: only the pagecache pages and filesystem data need to use
        mapping_gfp_mask.
      
      - Fix grab_cache_page_nowait: same as splice, also honour NUMA placement.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2ae88149
  2. 25 10月, 2006 1 次提交
  3. 22 10月, 2006 2 次提交
  4. 21 10月, 2006 28 次提交