1. 02 6月, 2012 20 次提交
  2. 01 6月, 2012 20 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 51eab603
      Linus Torvalds 提交于
      Pull btrfs updates from Chris Mason:
       "This includes a fairly large change from Josef around data writeback
        completion.  Before, the writeback wasn't completed until the metadata
        insertions for the extent were done, and this made for fairly large
        latency spikes on the last page of each ordered extent.
      
        We already had a separate mechanism for tracking pending metadata
        insertions, so Josef just needed to tweak things a little to end
        writeback earlier on the page.  Overall it makes us much friendly to
        memory reclaim and lowers latencies quite a lot for synchronous IO.
      
        Jan Schmidt has finished some background work required to track btree
        blocks as they go through changes in ownership.  It's the missing
        piece he needed for both btrfs send/receive and subvolume quotas.
        Neither of those are ready yet, but the new tracking code is included
        here.  Most of the time, the new code is off.  It is only used by
        scrub and other backref walkers.
      
        Stefan Behrens has added io failure tracking.  This includes counters
        for which drives are causing the most trouble so the admin (or an
        automated tool) can choose to kick them out.  We're tracking IO
        errors, crc errors, and generation checks we do on each metadata
        block.
      
        RAID5/6 did miss the cut this time because I'm having trouble with
        corruptions.  I'll nail it down next week and post as a beta testing
        before 3.6"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (58 commits)
        Btrfs: fix tree mod log rewinded level and rewinding of moved keys
        Btrfs: fix tree mod log del_ptr
        Btrfs: add tree_mod_dont_log helper
        Btrfs: add missing spin_lock for insertion into tree mod log
        Btrfs: add inodes before dropping the extent lock in find_all_leafs
        Btrfs: use delayed ref sequence numbers for all fs-tree updates
        Btrfs: fix false positive in check-integrity on unmount
        Btrfs: fix runtime warning in check-integrity check data mode
        Btrfs: set ioprio of scrub readahead to idle
        Btrfs: fix return code in drop_objectid_items
        Btrfs: check to see if the inode is in the log before fsyncing
        Btrfs: return value of btrfs_read_buffer is checked correctly
        Btrfs: read device stats on mount, write modified ones during commit
        Btrfs: add ioctl to get and reset the device stats
        Btrfs: add device counters for detected IO and checksum errors
        btrfs: Drop unused function btrfs_abort_devices()
        Btrfs: fix the same inode id problem when doing auto defragment
        Btrfs: fall back to non-inline if we don't have enough space
        Btrfs: fix how we deal with the orphan block rsv
        Btrfs: convert the inode bit field to use the actual bit operations
        ...
      51eab603
    • L
      Merge branch 'for-3.5' of git://linux-nfs.org/~bfields/linux · 419f4319
      Linus Torvalds 提交于
      Pull the rest of the nfsd commits from Bruce Fields:
       "... and then I cherry-picked the remainder of the patches from the
        head of my previous branch"
      
      This is the rest of the original nfsd branch, rebased without the
      delegation stuff that I thought really needed to be redone.
      
      I don't like rebasing things like this in general, but in this situation
      this was the lesser of two evils.
      
      * 'for-3.5' of git://linux-nfs.org/~bfields/linux: (50 commits)
        nfsd4: fix, consolidate client_has_state
        nfsd4: don't remove rebooted client record until confirmation
        nfsd4: remove some dprintk's and a comment
        nfsd4: return "real" sequence id in confirmed case
        nfsd4: fix exchange_id to return confirm flag
        nfsd4: clarify that renewing expired client is a bug
        nfsd4: simpler ordering of setclientid_confirm checks
        nfsd4: setclientid: remove pointless assignment
        nfsd4: fix error return in non-matching-creds case
        nfsd4: fix setclientid_confirm same_cred check
        nfsd4: merge 3 setclientid cases to 2
        nfsd4: pull out common code from setclientid cases
        nfsd4: merge last two setclientid cases
        nfsd4: setclientid/confirm comment cleanup
        nfsd4: setclientid remove unnecessary terms from a logical expression
        nfsd4: move rq_flavor into svc_cred
        nfsd4: stricter cred comparison for setclientid/exchange_id
        nfsd4: move principal name into svc_cred
        nfsd4: allow removing clients not holding state
        nfsd4: rearrange exchange_id logic to simplify
        ...
      419f4319
    • A
      reiserfs: get rid of resierfs_sync_super · 033369d1
      Artem Bityutskiy 提交于
      This patch stops reiserfs using the VFS 'write_super()' method along with the
      s_dirt flag, because they are on their way out.
      
      The whole "superblock write-out" VFS infrastructure is served by the
      'sync_supers()' kernel thread, which wakes up every 5 (by default) seconds and
      writes out all dirty superblock using the '->write_super()' call-back.  But the
      problem with this thread is that it wastes power by waking up the system every
      5 seconds, even if there are no diry superblocks, or there are no client
      file-systems which would need this (e.g., btrfs does not use
      '->write_super()'). So we want to kill it completely and thus, we need to make
      file-systems to stop using the '->write_super()' VFS service, and then remove
      it together with the kernel thread.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      033369d1
    • A
      reiserfs: mark the superblock as dirty a bit later · 5c5fd819
      Artem Bityutskiy 提交于
      The 'journal_mark_dirty()' function currently first marks the superblock as
      dirty by setting 's_dirt' to 1, then does various sanity checks and returns,
      then actuall does all the magic with the journal.
      
      This is not an ideal order, though. It makes more sense to first do all the
      checks, then do all the internal stuff, and at the end notify the VFS that the
      superblock is now dirty.
      
      This patch moves the 's_dirt = 1' assignment from the very beginning of this
      function to the very end.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      5c5fd819
    • A
      reiserfs: remove useless superblock dirtying · 717f03c4
      Artem Bityutskiy 提交于
      The 'reiserfs_resize()' function marks the superblock as dirty by assigning 1
      to 's_dirt' and then calls 'journal_mark_dirty()' which does the same. Thus,
      we can remove the assignment from 'reiserfs_resize()'.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      717f03c4
    • A
      reiserfs: clean-up function return type · 25729b0e
      Artem Bityutskiy 提交于
      Turn 'reiserfs_flush_old_commits()' into a void function because the callers
      do not cares about what it returns anyway.
      
      We are going to remove the 'sb->s_dirt' field completely and this patch is a
      small step towards this direction.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      25729b0e
    • A
      reiserfs: cleanup reiserfs_fill_super a bit · efaa33eb
      Artem Bityutskiy 提交于
      We have the reiserfs superblock pointer in the 'sbi' variable in this
      function, no need to use the 'REISERFS_SB(s)' macro which is the same.
      This is jut a small clean-up.
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      efaa33eb
    • A
      sch_atm.c: get rid of poinless extern · d5836751
      Al Viro 提交于
      sockfd_lookup() is declared in linux/net.h, which is pulled by
      linux/skbuff.h (and needed for a lot of other stuff in sch_atm.c
      anyway).
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d5836751
    • A
      unexport do_munmap() · 17d1587f
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      17d1587f
    • A
      new helper: vm_mmap_pgoff() · eb36c587
      Al Viro 提交于
      take it to mm/util.c, convert vm_mmap() to use of that one and
      take it to mm/util.c as well, convert both sys_mmap_pgoff() to
      use of vm_mmap_pgoff()
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      eb36c587
    • A
      kill do_mmap() completely · dc982501
      Al Viro 提交于
      just pull into vm_mmap()
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      dc982501
    • A
      switch aio and shm to do_mmap_pgoff(), make do_mmap() static · e3fc629d
      Al Viro 提交于
      after all, 0 bytes and 0 pages is the same thing...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      e3fc629d
    • A
      98de59bf
    • A
      move security_mmap_addr() to saner place · 9ac4ed4b
      Al Viro 提交于
      it really should be done by get_unmapped_area(); that cuts down on
      the amount of callers considerably and it's the right place for
      that stuff anyway.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      9ac4ed4b
    • A
      take security_mmap_file() outside of ->mmap_sem · 8b3ec681
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      8b3ec681
    • H
      ext4: hole-punch use truncate_pagecache_range · 5e44f8c3
      Hugh Dickins 提交于
      When truncating a file, we unmap pages from userspace first, as that's
      usually more efficient than relying, page by page, on the fallback in
      truncate_inode_page() - particularly if the file is mapped many times.
      
      Do the same when punching a hole: 3.4 added truncate_pagecache_range()
      to do the unmap and trunc, so use it in ext4_ext_punch_hole(), instead
      of calling truncate_inode_pages_range() directly.
      Signed-off-by: NHugh Dickins <hughd@google.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      5e44f8c3
    • W
      jbd2: use kmem_cache_zalloc wrapper instead of flag · b2f4edb3
      Wanlong Gao 提交于
      Use kmem_cache_zalloc wrapper instead of flag __GFP_ZERO.
      Signed-off-by: NWanlong Gao <gaowanlong@cn.fujitsu.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      b2f4edb3
    • S
      ext4: remove mb_groups before tearing down the buddy_cache · 95599968
      Salman Qazi 提交于
      We can't have references held on pages in the s_buddy_cache while we are
      trying to truncate its pages and put the inode.  All the pages must be
      gone before we reach clear_inode.  This can only be gauranteed if we
      can prevent new users from grabbing references to s_buddy_cache's pages.
      
      The original bug can be reproduced and the bug fix can be verified by:
      
      while true; do mount -t ext4 /dev/ram0 /export/hda3/ram0; \
      	umount /export/hda3/ram0; done &
      
      while true; do cat /proc/fs/ext4/ram0/mb_groups; done
      Signed-off-by: NSalman Qazi <sqazi@google.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@kernel.org
      95599968
    • S
      ext4: add ext4_mb_unload_buddy in the error path · 02b78310
      Salman Qazi 提交于
      ext4_free_blocks fails to pair an ext4_mb_load_buddy with a matching
      ext4_mb_unload_buddy when it fails a memory allocation.
      Signed-off-by: NSalman Qazi <sqazi@google.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@kernel.org
      02b78310
    • T
      ext4: don't trash state flags in EXT4_IOC_SETFLAGS · 79906964
      Theodore Ts'o 提交于
      In commit 353eb83c we removed i_state_flags with 64-bit longs, But
      when handling the EXT4_IOC_SETFLAGS ioctl, we replace i_flags
      directly, which trashes the state flags which are stored in the high
      32-bits of i_flags on 64-bit platforms.  So use the the
      ext4_{set,clear}_inode_flags() functions which use atomic bit
      manipulation functions instead.
      Reported-by: NTao Ma <boyu.mt@taobao.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@kernel.org
      79906964