1. 12 Apr, 2014 5 commits
  2. 11 Apr, 2014 3 commits
    • Theodore Ts'o's avatar
      ext4: move ext4_update_i_disksize() into mpage_map_and_submit_extent() · 622cad13
      Theodore Ts'o authored
      The function ext4_update_i_disksize() is used in only one place, in
      the function mpage_map_and_submit_extent().  Move its code to simplify
      the code paths, and also move the call to ext4_mark_inode_dirty() into
      the i_data_sem's critical region, to be consistent with all of the
      other places where we update i_disksize.  That way, we also keep the
      raw_inode's i_disksize protected, to avoid the following race:
      
            CPU #1                                 CPU #2
      
         down_write(&i_data_sem)
         Modify i_disk_size
         up_write(&i_data_sem)
                                              down_write(&i_data_sem)
                                              Modify i_disk_size
                                              Copy i_disk_size to on-disk inode
                                              up_write(&i_data_sem)
         Copy i_disk_size to on-disk inode
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: stable@vger.kernel.org
      622cad13
    • Younger Liu's avatar
      ext4: return ENOMEM rather than EIO when find_###_page() fails · c57ab39b
      Younger Liu authored
      Return ENOMEM rather than EIO when find_get_page() fails in
      ext4_mb_get_buddy_page_lock() and find_or_create_page() fails in
      ext4_mb_load_buddy().
      Signed-off-by: default avatarYounger Liu <younger.liucn@gmail.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      c57ab39b
    • Namjae Jeon's avatar
      ext4: fix COLLAPSE_RANGE test failure in data journalling mode · 1ce01c4a
      Namjae Jeon authored
      When mounting ext4 with data=journal option, xfstest shared/002 and
      shared/004 are currently failing as checksum computed for testfile
      does not match with the checksum computed in other journal modes.
      In case of data=journal mode, a call to filemap_write_and_wait_range
      will not flush anything to disk as buffers are not marked dirty in
      write_end. In collapse range this call is followed by a call to
      truncate_pagecache_range. Due to this, when checksum is computed,
      a portion of file is re-read from disk which replace valid data with
      NULL bytes and hence the reason for the difference in checksum.
      
      Calling ext4_force_commit before filemap_write_and_wait_range solves
      the issue as it will mark the buffers dirty during commit transaction
      which can be later synced by a call to filemap_write_and_wait_range.
      Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
      Signed-off-by: default avatarAshish Sangwan <a.sangwan@samsung.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      1ce01c4a
  3. 08 Apr, 2014 1 commit
    • Theodore Ts'o's avatar
      ext4: update PF_MEMALLOC handling in ext4_write_inode() · 87f7e416
      Theodore Ts'o authored
      The special handling of PF_MEMALLOC callers in ext4_write_inode()
      shouldn't be necessary as there shouldn't be any. Warn about it. Also
      update comment before the function as it seems somewhat outdated.
      
      (Changes modeled on an ext3 patch posted by Jan Kara to the linux-ext4
      mailing list on Februaryt 28, 2014, which apparently never went into
      the ext3 tree.)
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Cc: Jan Kara <jack@suse.cz>
      87f7e416
  4. 07 Apr, 2014 5 commits
    • Jan Kara's avatar
      ext4: fix jbd2 warning under heavy xattr load · ec4cb1aa
      Jan Kara authored
      When heavily exercising xattr code the assertion that
      jbd2_journal_dirty_metadata() shouldn't return error was triggered:
      
      WARNING: at /srv/autobuild-ceph/gitbuilder.git/build/fs/jbd2/transaction.c:1237
      jbd2_journal_dirty_metadata+0x1ba/0x260()
      
      CPU: 0 PID: 8877 Comm: ceph-osd Tainted: G    W 3.10.0-ceph-00049-g68d04c9 #1
      Hardware name: Dell Inc. PowerEdge R410/01V648, BIOS 1.6.3 02/07/2011
       ffffffff81a1d3c8 ffff880214469928 ffffffff816311b0 ffff880214469968
       ffffffff8103fae0 ffff880214469958 ffff880170a9dc30 ffff8802240fbe80
       0000000000000000 ffff88020b366000 ffff8802256e7510 ffff880214469978
      Call Trace:
       [<ffffffff816311b0>] dump_stack+0x19/0x1b
       [<ffffffff8103fae0>] warn_slowpath_common+0x70/0xa0
       [<ffffffff8103fb2a>] warn_slowpath_null+0x1a/0x20
       [<ffffffff81267c2a>] jbd2_journal_dirty_metadata+0x1ba/0x260
       [<ffffffff81245093>] __ext4_handle_dirty_metadata+0xa3/0x140
       [<ffffffff812561f3>] ext4_xattr_release_block+0x103/0x1f0
       [<ffffffff81256680>] ext4_xattr_block_set+0x1e0/0x910
       [<ffffffff8125795b>] ext4_xattr_set_handle+0x38b/0x4a0
       [<ffffffff810a319d>] ? trace_hardirqs_on+0xd/0x10
       [<ffffffff81257b32>] ext4_xattr_set+0xc2/0x140
       [<ffffffff81258547>] ext4_xattr_user_set+0x47/0x50
       [<ffffffff811935ce>] generic_setxattr+0x6e/0x90
       [<ffffffff81193ecb>] __vfs_setxattr_noperm+0x7b/0x1c0
       [<ffffffff811940d4>] vfs_setxattr+0xc4/0xd0
       [<ffffffff8119421e>] setxattr+0x13e/0x1e0
       [<ffffffff811719c7>] ? __sb_start_write+0xe7/0x1b0
       [<ffffffff8118f2e8>] ? mnt_want_write_file+0x28/0x60
       [<ffffffff8118c65c>] ? fget_light+0x3c/0x130
       [<ffffffff8118f2e8>] ? mnt_want_write_file+0x28/0x60
       [<ffffffff8118f1f8>] ? __mnt_want_write+0x58/0x70
       [<ffffffff811946be>] SyS_fsetxattr+0xbe/0x100
       [<ffffffff816407c2>] system_call_fastpath+0x16/0x1b
      
      The reason for the warning is that buffer_head passed into
      jbd2_journal_dirty_metadata() didn't have journal_head attached. This is
      caused by the following race of two ext4_xattr_release_block() calls:
      
      CPU1                                CPU2
      ext4_xattr_release_block()          ext4_xattr_release_block()
      lock_buffer(bh);
      /* False */
      if (BHDR(bh)->h_refcount == cpu_to_le32(1))
      } else {
        le32_add_cpu(&BHDR(bh)->h_refcount, -1);
        unlock_buffer(bh);
                                          lock_buffer(bh);
                                          /* True */
                                          if (BHDR(bh)->h_refcount == cpu_to_le32(1))
                                            get_bh(bh);
                                            ext4_free_blocks()
                                              ...
                                              jbd2_journal_forget()
                                                jbd2_journal_unfile_buffer()
                                                -> JH is gone
        error = ext4_handle_dirty_xattr_block(handle, inode, bh);
        -> triggers the warning
      
      We fix the problem by moving ext4_handle_dirty_xattr_block() under the
      buffer lock. Sadly this cannot be done in nojournal mode as that
      function can call sync_dirty_buffer() which would deadlock. Luckily in
      nojournal mode the race is harmless (we only dirty already freed buffer)
      and thus for nojournal mode we leave the dirtying outside of the buffer
      lock.
      Reported-by: default avatarSage Weil <sage@inktank.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      ec4cb1aa
    • Matthew Wilcox's avatar
      ext4: note the error in ext4_end_bio() · 9503c67c
      Matthew Wilcox authored
      ext4_end_bio() currently throws away the error that it receives.  Chances
      are this is part of a spate of errors, one of which will end up getting
      the error returned to userspace somehow, but we shouldn't take that risk.
      Also print out the errno to aid in debug.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: stable@vger.kernel.org
      9503c67c
    • Azat Khuzhin's avatar
      ext4: initialize multi-block allocator before checking block descriptors · 00764937
      Azat Khuzhin authored
      With EXT4FS_DEBUG ext4_count_free_clusters() will call
      ext4_read_block_bitmap() without s_group_info initialized, so we need to
      initialize multi-block allocator before.
      
      And dependencies that must be solved, to allow this:
      - multi-block allocator needs in group descriptors
      - need to install s_op before initializing multi-block allocator,
        because in ext4_mb_init_backend() new inode is created.
      - initialize number of group desc blocks (s_gdb_count) otherwise
        number of clusters returned by ext4_free_clusters_after_init() is not correct.
        (see ext4_bg_num_gdb_nometa())
      
      Here is the stack backtrace:
      
      (gdb) bt
       #0  ext4_get_group_info (group=0, sb=0xffff880079a10000) at ext4.h:2430
       #1  ext4_validate_block_bitmap (sb=sb@entry=0xffff880079a10000,
           desc=desc@entry=0xffff880056510000, block_group=block_group@entry=0,
           bh=bh@entry=0xffff88007bf2b2d8) at balloc.c:358
       #2  0xffffffff81232202 in ext4_wait_block_bitmap (sb=sb@entry=0xffff880079a10000,
           block_group=block_group@entry=0,
           bh=bh@entry=0xffff88007bf2b2d8) at balloc.c:476
       #3  0xffffffff81232eaf in ext4_read_block_bitmap (sb=sb@entry=0xffff880079a10000,
           block_group=block_group@entry=0) at balloc.c:489
       #4  0xffffffff81232fc0 in ext4_count_free_clusters (sb=sb@entry=0xffff880079a10000) at balloc.c:665
       #5  0xffffffff81259ffa in ext4_check_descriptors (first_not_zeroed=<synthetic pointer>,
           sb=0xffff880079a10000) at super.c:2143
       #6  ext4_fill_super (sb=sb@entry=0xffff880079a10000, data=<optimized out>,
           data@entry=0x0 <irq_stack_union>, silent=silent@entry=0) at super.c:3851
           ...
      Signed-off-by: default avatarAzat Khuzhin <a3at.mail@gmail.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      00764937
    • Kazuya Mio's avatar
      ext4: FIBMAP ioctl causes BUG_ON due to handle EXT_MAX_BLOCKS · 4adb6ab3
      Kazuya Mio authored
      When we try to get 2^32-1 block of the file which has the extent
      (ee_block=2^32-2, ee_len=1) with FIBMAP ioctl, it causes BUG_ON
      in ext4_ext_put_gap_in_cache().
      
      To avoid the problem, ext4_map_blocks() needs to check the file logical block
      number. ext4_ext_put_gap_in_cache() called via ext4_map_blocks() cannot
      handle 2^32-1 because the maximum file logical block number is 2^32-2.
      
      Note that ext4_ind_map_blocks() returns -EIO when the block number is invalid.
      So ext4_map_blocks() should also return the same errno.
      Signed-off-by: default avatarKazuya Mio <k-mio@sx.jp.nec.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      4adb6ab3
    • Chen Gang's avatar
      ext4: fix 64-bit number truncation warning · 666525df
      Chen Gang authored
      '0x7FDEADBEEF' will be truncated to 32-bit number under unicore32. Need
      append 'ULL' for it.
      
      The related warning (with allmodconfig under unicore32):
      
          CC [M]  fs/ext4/extents_status.o
        fs/ext4/extents_status.c: In function "__es_remove_extent":
        fs/ext4/extents_status.c:813: warning: integer constant is too large for "long" type
      Signed-off-by: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      666525df
  5. 04 Apr, 2014 13 commits
    • Linus Torvalds's avatar
      Merge tag 'xfs-for-linus-3.15-rc1' of git://oss.sgi.com/xfs/xfs · d15e0310
      Linus Torvalds authored
      Pull xfs update from Dave Chinner:
       "There are a couple of new fallocate features in this request - it was
        decided that it was easiest to push them through the XFS tree using
        topic branches and have the ext4 support be based on those branches.
        Hence you may see some overlap with the ext4 tree merge depending on
        how they including those topic branches into their tree.  Other than
        that, there is O_TMPFILE support, some cleanups and bug fixes.
      
        The main changes in the XFS tree for 3.15-rc1 are:
      
         - O_TMPFILE support
         - allowing AIO+DIO writes beyond EOF
         - FALLOC_FL_COLLAPSE_RANGE support for fallocate syscall and XFS
           implementation
         - FALLOC_FL_ZERO_RANGE support for fallocate syscall and XFS
           implementation
         - IO verifier cleanup and rework
         - stack usage reduction changes
         - vm_map_ram NOIO context fixes to remove lockdep warings
         - various bug fixes and cleanups"
      
      * tag 'xfs-for-linus-3.15-rc1' of git://oss.sgi.com/xfs/xfs: (34 commits)
        xfs: fix directory hash ordering bug
        xfs: extra semi-colon breaks a condition
        xfs: Add support for FALLOC_FL_ZERO_RANGE
        fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
        xfs: inode log reservations are still too small
        xfs: xfs_check_page_type buffer checks need help
        xfs: avoid AGI/AGF deadlock scenario for inode chunk allocation
        xfs: use NOIO contexts for vm_map_ram
        xfs: don't leak EFSBADCRC to userspace
        xfs: fix directory inode iolock lockdep false positive
        xfs: allocate xfs_da_args to reduce stack footprint
        xfs: always do log forces via the workqueue
        xfs: modify verifiers to differentiate CRC from other errors
        xfs: print useful caller information in xfs_error_report
        xfs: add xfs_verifier_error()
        xfs: add helper for updating checksums on xfs_bufs
        xfs: add helper for verifying checksums on xfs_bufs
        xfs: Use defines for CRC offsets in all cases
        xfs: skip pointless CRC updates after verifier failures
        xfs: Add support FALLOC_FL_COLLAPSE_RANGE for fallocate
        ...
      d15e0310
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 24e7ea3b
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Major changes for 3.14 include support for the newly added ZERO_RANGE
        and COLLAPSE_RANGE fallocate operations, and scalability improvements
        in the jbd2 layer and in xattr handling when the extended attributes
        spill over into an external block.
      
        Other than that, the usual clean ups and minor bug fixes"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (42 commits)
        ext4: fix premature freeing of partial clusters split across leaf blocks
        ext4: remove unneeded test of ret variable
        ext4: fix comment typo
        ext4: make ext4_block_zero_page_range static
        ext4: atomically set inode->i_flags in ext4_set_inode_flags()
        ext4: optimize Hurd tests when reading/writing inodes
        ext4: kill i_version support for Hurd-castrated file systems
        ext4: each filesystem creates and uses its own mb_cache
        fs/mbcache.c: doucple the locking of local from global data
        fs/mbcache.c: change block and index hash chain to hlist_bl_node
        ext4: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
        ext4: refactor ext4_fallocate code
        ext4: Update inode i_size after the preallocation
        ext4: fix partial cluster handling for bigalloc file systems
        ext4: delete path dealloc code in ext4_ext_handle_uninitialized_extents
        ext4: only call sync_filesystm() when remounting read-only
        fs: push sync_filesystem() down to the file system's remount_fs()
        jbd2: improve error messages for inconsistent journal heads
        jbd2: minimize region locked by j_list_lock in jbd2_journal_forget()
        jbd2: minimize region locked by j_list_lock in journal_get_create_access()
        ...
      24e7ea3b
    • Linus Torvalds's avatar
      Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 8e343c8b
      Linus Torvalds authored
      Pull pstore fixes from Tony Luck:
       "Series of small bug fixes for pstore"
      
      * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        pstore: Fix memory leak when decompress using big_oops_buf
        pstore: Fix buffer overflow while write offset equal to buffer size
        pstore: Correct the max_dump_cnt clearing of ramoops
        pstore: Fix NULL pointer fault if get NULL prz in ramoops_get_next_prz
        pstore: skip zero size persistent ram buffer in traverse
        pstore: clarify clearing of _read_cnt in ramoops_context
      8e343c8b
    • Linus Torvalds's avatar
      Merge tag 'upstream-3.15-rc1' of git://git.infradead.org/linux-ubifs · 370d2662
      Linus Torvalds authored
      Pull ubifs updates from Artem Bityutskiy:
       "This pull request includes the 'ubiblock' driver which provides R/O
        block access to UBI volumes.  It is useful for those who want to use
        squashfs on top of raw flash devices.  UBI will provide bit-flip
        handling and wear-levelling in this case (e.g., if there are other UBI
        volumes with R/W UBIFS too).
      
        The driver is actually pretty small and it is part of the UBI kernel
        subsystem.  Delivered by Ezequiel Garcia, along with a piece of
        documentation on the MTD web site and the user-space tool for creating
        and removing block devices"
      
      * tag 'upstream-3.15-rc1' of git://git.infradead.org/linux-ubifs:
        UBI: block: Remove __initdata from ubiblock_param_ops
        UBI: make UBI_IOCVOLCRBLK take a parameter for future usage
        UBI: rename block device ioctls
        UBI: block: Use ENOSYS as return value when CONFIG_UBIBLOCK=n
        UBI: block: Add CONFIG_BLOCK dependency
        UBI: block: Use 'u64' for the 64-bit dividend
        UBI: block: Mark init-only symbol as __initdata
        UBI: block: do not use term "attach"
        UBI: R/O block driver on top of UBI volumes
      370d2662
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · d15fee81
      Linus Torvalds authored
      Pull fuse update from Miklos Szeredi:
       "This series adds cached writeback support to fuse, improving write
        throughput"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: fix "uninitialized variable" warning
        fuse: Turn writeback cache on
        fuse: Fix O_DIRECT operations vs cached writeback misorder
        fuse: fuse_flush() should wait on writeback
        fuse: Implement write_begin/write_end callbacks
        fuse: restructure fuse_readpage()
        fuse: Flush files on wb close
        fuse: Trust kernel i_mtime only
        fuse: Trust kernel i_size only
        fuse: Connection bit for enabling writeback
        fuse: Prepare to handle short reads
        fuse: Linking file to inode helper
      d15fee81
    • Linus Torvalds's avatar
      Merge tag 'dlm-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 56c225fe
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This set includes a couple trivial cleanups and changes recovery log
        messages from DEBUG to INFO"
      
      * tag 'dlm-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: use INFO for recovery messages
        fs: Include appropriate header file in dlm/ast.c
        dlm: silence a harmless use after free warning
      56c225fe
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 53c56662
      Linus Torvalds authored
      Pull btrfs changes from Chris Mason:
       "This is a pretty long stream of bug fixes and performance fixes.
      
        Qu Wenruo has replaced the btrfs async threads with regular kernel
        workqueues.  We'll keep an eye out for performance differences, but
        it's nice to be using more generic code for this.
      
        We still have some corruption fixes and other patches coming in for
        the merge window, but this batch is tested and ready to go"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (108 commits)
        Btrfs: fix a crash of clone with inline extents's split
        btrfs: fix uninit variable warning
        Btrfs: take into account total references when doing backref lookup
        Btrfs: part 2, fix incremental send's decision to delay a dir move/rename
        Btrfs: fix incremental send's decision to delay a dir move/rename
        Btrfs: remove unnecessary inode generation lookup in send
        Btrfs: fix race when updating existing ref head
        btrfs: Add trace for btrfs_workqueue alloc/destroy
        Btrfs: less fs tree lock contention when using autodefrag
        Btrfs: return EPERM when deleting a default subvolume
        Btrfs: add missing kfree in btrfs_destroy_workqueue
        Btrfs: cache extent states in defrag code path
        Btrfs: fix deadlock with nested trans handles
        Btrfs: fix possible empty list access when flushing the delalloc inodes
        Btrfs: split the global ordered extents mutex
        Btrfs: don't flush all delalloc inodes when we doesn't get s_umount lock
        Btrfs: reclaim delalloc metadata more aggressively
        Btrfs: remove unnecessary lock in may_commit_transaction()
        Btrfs: remove the unnecessary flush when preparing the pages
        Btrfs: just do dirty page flush for the inode with compression before direct IO
        ...
      53c56662
    • Linus Torvalds's avatar
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 34917f97
      Linus Torvalds authored
      Pull GFS2 updates from Steven Whitehouse:
       "One of the main highlights this time, is not the patches themselves
        but instead the widening contributor base.  It is good to see that
        interest is increasing in GFS2, and I'd like to thank all the
        contributors to this patch set.
      
        In addition to the usual set of bug fixes and clean ups, there are
        patches to improve inode creation performance when xattrs are required
        and some improvements to the transaction code which is intended to
        help improve scalability after further changes in due course.
      
        Journal extent mapping is also updated to make it more efficient and
        again, this is a foundation for future work in this area.
      
        The maximum number of ACLs has been increased to 300 (for a 4k block
        size) which means that even with a few additional xattrs from selinux,
        everything should fit within a single fs block.
      
        There is also a patch to bring GFS2's own copy of the writepages code
        up to the same level as the core VFS.  Eventually we may be able to
        merge some of this code, since it is fairly similar.
      
        The other major change this time, is bringing consistency to the
        printing of messages via fs_<level>, pr_<level> macros"
      
      * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (29 commits)
        GFS2: Fix address space from page function
        GFS2: Fix uninitialized VFS inode in gfs2_create_inode
        GFS2: Fix return value in slot_get()
        GFS2: inline function gfs2_set_mode
        GFS2: Remove extraneous function gfs2_security_init
        GFS2: Increase the max number of ACLs
        GFS2: Re-add a call to log_flush_wait when flushing the journal
        GFS2: Ensure workqueue is scheduled after noexp request
        GFS2: check NULL return value in gfs2_ok_to_move
        GFS2: Convert gfs2_lm_withdraw to use fs_err
        GFS2: Use fs_<level> more often
        GFS2: Use pr_<level> more consistently
        GFS2: Move recovery variables to journal structure in memory
        GFS2: global conversion to pr_foo()
        GFS2: return -E2BIG if hit the maximum limits of ACLs
        GFS2: Clean up journal extent mapping
        GFS2: replace kmalloc - __vmalloc / memset 0
        GFS2: Remove extra "if" in gfs2_log_flush()
        fs: NULL dereference in posix_acl_to_xattr()
        GFS2: Move log buffer accounting to transaction
        ...
      34917f97
    • Linus Torvalds's avatar
      Merge branch 'locks-3.15' of git://git.samba.org/jlayton/linux · f7789dc0
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "Highlights:
      
         - maintainership change for fs/locks.c.  Willy's not interested in
           maintaining it these days, and is OK with Bruce and I taking it.
         - fix for open vs setlease race that Al ID'ed
         - cleanup and consolidation of file locking code
         - eliminate unneeded BUG() call
         - merge of file-private lock implementation"
      
      * 'locks-3.15' of git://git.samba.org/jlayton/linux:
        locks: make locks_mandatory_area check for file-private locks
        locks: fix locks_mandatory_locked to respect file-private locks
        locks: require that flock->l_pid be set to 0 for file-private locks
        locks: add new fcntl cmd values for handling file private locks
        locks: skip deadlock detection on FL_FILE_PVT locks
        locks: pass the cmd value to fcntl_getlk/getlk64
        locks: report l_pid as -1 for FL_FILE_PVT locks
        locks: make /proc/locks show IS_FILE_PVT locks as type "FLPVT"
        locks: rename locks_remove_flock to locks_remove_file
        locks: consolidate checks for compatible filp->f_mode values in setlk handlers
        locks: fix posix lock range overflow handling
        locks: eliminate BUG() call when there's an unexpected lock on file close
        locks: add __acquires and __releases annotations to locks_start and locks_stop
        locks: remove "inline" qualifier from fl_link manipulation functions
        locks: clean up comment typo
        locks: close potential race between setlease and open
        MAINTAINERS: update entry for fs/locks.c
      f7789dc0
    • Linus Torvalds's avatar
      Merge branch 'cross-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 7df93452
      Linus Torvalds authored
      Pull renameat2 system call from Miklos Szeredi:
       "This adds a new syscall, renameat2(), which is the same as renameat()
        but with a flags argument.
      
        The purpose of extending rename is to add cross-rename, a symmetric
        variant of rename, which exchanges the two files.  This allows
        interesting things, which were not possible before, for example
        atomically replacing a directory tree with a symlink, etc...  This
        also allows overlayfs and friends to operate on whiteouts atomically.
      
        Andy Lutomirski also suggested a "noreplace" flag, which disables the
        overwriting behavior of rename.
      
        These two flags, RENAME_EXCHANGE and RENAME_NOREPLACE are only
        implemented for ext4 as an example and for testing"
      
      * 'cross-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ext4: add cross rename support
        ext4: rename: split out helper functions
        ext4: rename: move EMLINK check up
        ext4: rename: create ext4_renament structure for local vars
        vfs: add cross-rename
        vfs: lock_two_nondirectories: allow directory args
        security: add flags to rename hooks
        vfs: add RENAME_NOREPLACE flag
        vfs: add renameat2 syscall
        vfs: rename: use common code for dir and non-dir
        vfs: rename: move d_move() up
        vfs: add d_is_dir()
      7df93452
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 3c83e61e
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       "The main set of series of patches for media subsystem, including:
         - document RC sysfs class
         - added an API to setup scancode to allow waking up systems using the
           Remote Controller
         - add API for SDR devices.  Drivers are still on staging
         - some API improvements for getting EDID data from media
           inputs/outputs
         - new DVB frontend driver for drx-j (ATSC)
         - one driver (it913x/it9137) got removed, in favor of an improvement
           on another driver (af9035)
         - added a skeleton V4L2 PCI driver at documentation
         - added a dual flash driver (lm3646)
         - added a new IR driver (img-ir)
         - added an IR scancode decoder for the Sharp protocol
         - some improvements at the usbtv driver, to allow its core to be
           reused.
         - added a new SDR driver (rtl2832u_sdr)
         - added a new tuner driver (msi001)
         - several improvements at em28xx driver to fix PM support, device
           removal and to split the V4L2 specific bits into a separate
           sub-driver
         - one driver got converted to videobuf2 (s2255drv)
         - the e4000 tuner driver now follows an improved binding model
         - some fixes at V4L2 compat32 code
         - several fixes and enhancements at videobuf2 code
         - some cleanups at V4L2 API documentation
         - usual driver enhancements, new board additions and misc fixups"
      
      [ NOTE! This merge effective drops commit 4329b93b ("of: Reduce
        indentation in of_graph_get_next_endpoint").
      
        The of_graph_get_next_endpoint() function was moved and renamed by
        commit fd9fdb78 ("[media] of: move graph helpers from
        drivers/media/v4l2-core to drivers/of").  It was originally called
        v4l2_of_get_next_endpoint() and lived in the file
        drivers/media/v4l2-core/v4l2-of.c.
      
        In that original location, it was then fixed to support empty port
        nodes by commit b9db140c ("[media] v4l: of: Support empty port
        nodes"), and that commit clashes badly with the dropped "Reduce
        intendation" commit.  I had to choose one or the other, and decided
        that the "Support empty port nodes" commit was more important ]
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (426 commits)
        [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
        Revert "[media] em28xx-dvb: fix PCTV 461e tuner I2C binding"
        [media] em28xx: fix PCTV 290e LNA oops
        [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
        [media] m88ds3103: fix bug on .set_tone()
        [media] saa7134: fix WARN_ON during resume
        [media] v4l2-dv-timings: add module name, description, license
        [media] videodev2.h: add parenthesis around macro arguments
        [media] saa6752hs: depends on CRC32
        [media] si4713: fix Kconfig dependencies
        [media] Sensoray 2255 uses videobuf2
        [media] adv7180: free an interrupt on failure paths in init_device()
        [media] e4000: make VIDEO_V4L2 dependency optional
        [media] af9033: Don't export functions for the hardware filter
        [media] af9035: use af9033 PID filters
        [media] af9033: implement PID filter
        [media] rtl2832_sdr: do not use dynamic stack allocation
        [media] e4000: fix 32-bit build error
        [media] em28xx-audio: make sure audio is unmuted on open()
        [media] DocBook media: v4l2_format_sdr was renamed to v4l2_sdr_format
        ...
      3c83e61e
    • Linus Torvalds's avatar
      Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac · 4a4389ab
      Linus Torvalds authored
      Pull sb_edac patches from Mauro Carvalho Chehab:
       "A couple sb_edac driver improvements, cleaning a little bit the amount
        of data sent to dmesg, and fixing one error message"
      
      * 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
        sb_edac: mark MCE messages as KERN_DEBUG
        sb_edac: use "event" instead of "exception" when MC wasnt signaled
      4a4389ab
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 73f10274
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "The first round of updates for the input subsystem.
      
        Just new drivers and existing driver fixes, no core changes except for
        the new uinput IOCTL to allow userspace to fetch sysfs name of the
        input device that was created"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (43 commits)
        Input: edt-ft5x06 - add a missing condition
        Input: appletouch - fix jumps when additional fingers are detected
        Input: appletouch - implement sensor data smoothing
        Input: add driver for SOC button array
        Input: pm8xxx-vibrator - add DT match table
        Input: pmic8xxx-pwrkey - migrate to DT
        Input: pmic8xxx-keypad - migrate to DT
        Input: pmic8xxx-keypad - migrate to regmap APIs
        Input: pmic8xxx-keypad - migrate to devm_* APIs
        Input: pmic8xxx-keypad - fix build by removing gpio configuration
        Input: add new driver for ARM CLPS711X keypad
        Input: edt-ft5x06 - add support for M09 firmware version
        Input: edt-ft5x06 - ignore touchdown events
        Input: edt-ft5x06 - adjust delays to conform datasheet
        Input: edt-ft5x06 - add DT support
        Input: edt-ft5x06 - several cleanups; no functional change
        Input: appletouch - dial back fuzz setting
        Input: remove obsolete tnetv107x drivers
        Input: sirfsoc-onkey - set the capability of reporting KEY_POWER
        Input: da9052_onkey - use correct register bit for key status
        ...
      73f10274
  6. 03 Apr, 2014 13 commits
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 877f075a
      Linus Torvalds authored
      Pull infiniband updates from Roland Dreier:
       "Main batch of InfiniBand/RDMA changes for 3.15:
      
         - The biggest change is core API extensions and mlx5 low-level driver
           support for handling DIF/DIX-style protection information, and the
           addition of PI support to the iSER initiator.  Target support will
           be arriving shortly through the SCSI target tree.
      
         - A nice simplification to the "umem" memory pinning library now that
           we have chained sg lists.  Kudos to Yishai Hadas for realizing our
           code didn't have to be so crazy.
      
         - Another nice simplification to the sg wrappers used by qib, ipath
           and ehca to handle their mapping of memory to adapter.
      
         - The usual batch of fixes to bugs found by static checkers etc.
           from intrepid people like Dan Carpenter and Yann Droneaud.
      
         - A large batch of cxgb4, ocrdma, qib driver updates"
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (102 commits)
        RDMA/ocrdma: Unregister inet notifier when unloading ocrdma
        RDMA/ocrdma: Fix warnings about pointer <-> integer casts
        RDMA/ocrdma: Code clean-up
        RDMA/ocrdma: Display FW version
        RDMA/ocrdma: Query controller information
        RDMA/ocrdma: Support non-embedded mailbox commands
        RDMA/ocrdma: Handle CQ overrun error
        RDMA/ocrdma: Display proper value for max_mw
        RDMA/ocrdma: Use non-zero tag in SRQ posting
        RDMA/ocrdma: Memory leak fix in ocrdma_dereg_mr()
        RDMA/ocrdma: Increment abi version count
        RDMA/ocrdma: Update version string
        be2net: Add abi version between be2net and ocrdma
        RDMA/ocrdma: ABI versioning between ocrdma and be2net
        RDMA/ocrdma: Allow DPP QP creation
        RDMA/ocrdma: Read ASIC_ID register to select asic_gen
        RDMA/ocrdma: SQ and RQ doorbell offset clean up
        RDMA/ocrdma: EQ full catastrophe avoidance
        RDMA/cxgb4: Disable DSGL use by default
        RDMA/cxgb4: rx_data() needs to hold the ep mutex
        ...
      877f075a
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 3cf59142
      Linus Torvalds authored
      Pull second round of hwmon updates from Guenter Roeck:
       "Add support for AMD F16 M30h processor to k10temp driver.
      
        This adds one more patch which had secondary dependencies.  The branch
        point is arbitrary, but I did run a full set of build and qemu tests
        on it.  While there are some new build failures (6 out of 122 in my
        builds), none are due to this commit"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (k10temp) Add support for AMD F16 M30h processor
      3cf59142
    • Linus Torvalds's avatar
      Merge tag 'gpio-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 154d6f18
      Linus Torvalds authored
      Pull bulk of gpio updates from Linus Walleij:
       "A pretty big chunk of changes this time, but it has all been on
        rotation in linux-next and had some testing.  Of course there will be
        some amount of fixes on top...
      
         - Merged in a branch of irqchip changes from Thomas Gleixner: we need
           to have new callbacks from the irqchip to determine if the GPIO
           line will be eligible for IRQs, and this callback must be able to
           say "no".  After some thinking I got the branch from tglx and have
           switched all current users over to use this.
      
         - Based on tglx patches, we have added some generic irqchip helpers
           in the gpiolib core.  These will help centralize code when GPIO
           drivers have simple chained/cascaded IRQs.  Drivers will still
           define their irqchip vtables, but the gpiolib core will take care
           of irqdomain set-up, mapping from local offsets to Linux irqs, and
           reserve resources by marking the GPIO lines for IRQs.
      
         - Initially the PL061 and Nomadik GPIO/pin control drivers have been
           switched over to use the new gpiochip-to-irqchip infrastructure
           with more drivers expected for the next kernel cycle.  The
           factoring of just two drivers still makes it worth it so it is
           already a win.
      
         - A new driver for the Synopsys DesignWare APB GPIO block.
      
         - Modify the DaVinci GPIO driver to be reusable also for the new TI
           Keystone architecture.
      
         - A new driver for the LSI ZEVIO SoCs.
      
         - Delete the obsolte tnetv107x driver.
      
         - Some incremental work on GPIO descriptors: have
           gpiod_direction_output() use a logical level, respecting assertion
           polarity through ACTIVE_LOW flags, adding gpiod_direction_output_raw()
           for the case where you want to set that very value.  Add
           gpiochip_get_desc() to fetch a GPIO descriptor from a specific
           offset on a certain chip inside driver code.
      
         - Switch ACPI GPIO code over to using gpiochip_get_desc() and get rid
           of gpio_to_desc().
      
         - The ACPI GPIO event handling code has been reworked after
           encountering an actual real life implementation.
      
         - Support for ACPI GPIO operation regions.
      
         - Generic GPIO chips can now be assigned labels/names from platform
           data.
      
         - We now clamp values returned from GPIO drivers to the boolean [0,1]
           range.
      
         - Some improved documentation on how to use the polarity flag was
           added.
      
         - a large slew of incremental driver updates and non-critical fixes.
           Some targeted for stable"
      
      * tag 'gpio-v3.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (80 commits)
        gpio: rcar: Add helper variable dev = &pdev->dev
        gpio-lynxpoint: force gpio_get() to return "1" and "0" only
        gpio: unmap gpio irqs properly
        pch_gpio: set value before enabling output direction
        gpio: moxart: Actually set output state in moxart_gpio_direction_output()
        gpio: moxart: Avoid forward declaration
        gpio: mxs: Allow for recursive enable_irq_wake() call
        gpio: samsung: Add missing "break" statement
        gpio: twl4030: Remove redundant assignment
        gpio: dwapb: correct gpio-cells in binding document
        gpio: iop: fix devm_ioremap_resource() return value checking
        pinctrl: coh901: convert driver to use gpiolib irqchip
        pinctrl: nomadik: convert driver to use gpiolib irqchip
        gpio: pl061: convert driver to use gpiolib irqchip
        gpio: add IRQ chip helpers in gpiolib
        pinctrl: nomadik: factor in platform data container
        pinctrl: nomadik: rename secondary to latent
        gpio: Driver for SYSCON-based GPIOs
        gpio: generic: Use platform_device_id->driver_data field for driver flags
        pinctrl: coh901: move irq line locking to resource callbacks
        ...
      154d6f18
    • Linus Torvalds's avatar
      Merge branch 'akpm' (incoming from Andrew) · 76ca7d1c
      Linus Torvalds authored
      Merge first patch-bomb from Andrew Morton:
       - Various misc bits
       - kmemleak fixes
       - small befs, codafs, cifs, efs, freexxfs, hfsplus, minixfs, reiserfs things
       - fanotify
       - I appear to have become SuperH maintainer
       - ocfs2 updates
       - direct-io tweaks
       - a bit of the MM queue
       - printk updates
       - MAINTAINERS maintenance
       - some backlight things
       - lib/ updates
       - checkpatch updates
       - the rtc queue
       - nilfs2 updates
       - Small Documentation/ updates
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (237 commits)
        Documentation/SubmittingPatches: remove references to patch-scripts
        Documentation/SubmittingPatches: update some dead URLs
        Documentation/filesystems/ntfs.txt: remove changelog reference
        Documentation/kmemleak.txt: updates
        fs/reiserfs/super.c: add __init to init_inodecache
        fs/reiserfs: move prototype declaration to header file
        fs/hfsplus/attributes.c: add __init to hfsplus_create_attr_tree_cache()
        fs/hfsplus/extents.c: fix concurrent acess of alloc_blocks
        fs/hfsplus/extents.c: remove unused variable in hfsplus_get_block
        nilfs2: update project's web site in nilfs2.txt
        nilfs2: update MAINTAINERS file entries fix
        nilfs2: verify metadata sizes read from disk
        nilfs2: add FITRIM ioctl support for nilfs2
        nilfs2: add nilfs_sufile_trim_fs to trim clean segs
        nilfs2: implementation of NILFS_IOCTL_SET_SUINFO ioctl
        nilfs2: add nilfs_sufile_set_suinfo to update segment usage
        nilfs2: add struct nilfs_suinfo_update and flags
        nilfs2: update MAINTAINERS file entries
        fs/coda/inode.c: add __init to init_inodecache()
        BEFS: logging cleanup
        ...
      76ca7d1c
    • Mitchel Humpherys's avatar
      Documentation/SubmittingPatches: remove references to patch-scripts · 8d81e29f
      Mitchel Humpherys authored
      The link to the tarball for Andrew Morton's patch scripts is dead.
      These scripts don't seem to be used for kernel development these days
      anyways so just rip out all references to them.
      Signed-off-by: default avatarMitchel Humpherys <mitchelh@codeaurora.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d81e29f
    • Mitchel Humpherys's avatar
      Documentation/SubmittingPatches: update some dead URLs · 37c703f4
      Mitchel Humpherys authored
      The links to "The perfect patch" and "NO!!!! No more huge patch
      bombs..." have gone stale. Update them to some working locations.
      Signed-off-by: default avatarMitchel Humpherys <mitchelh@codeaurora.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      37c703f4
    • Fabian Frederick's avatar
      Documentation/filesystems/ntfs.txt: remove changelog reference · 4adeacdf
      Fabian Frederick authored
      File was removed in commit 7c821a17 ("Remove fs/ntfs/ChangeLog").
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Acked-by: default avatarAnton Altaparmakov <anton@tuxera.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4adeacdf
    • Wang YanQing's avatar
      Documentation/kmemleak.txt: updates · 4762c984
      Wang YanQing authored
      Update Documentatin/kmemleak.txt to reflect the following changes:
      
      Commit b69ec42b ("Kconfig: clean up the long arch list for the
      DEBUG_KMEMLEAK config option") made it so that we can't check supported
      architectures by read Kconfig.debug.
      
      Commit 85d3a316 ("kmemleak: use rbtree instead of prio tree")
      converted kmemleak to use rbtree instead of prio tree.
      Signed-off-by: default avatarWang YanQing <udknight@gmail.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4762c984
    • Fabian Frederick's avatar
      fs/reiserfs/super.c: add __init to init_inodecache · 31e14368
      Fabian Frederick authored
      init_inodecache is only called by __init init_reiserfs_fs.
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Acked-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      31e14368
    • Rashika Kheria's avatar
      fs/reiserfs: move prototype declaration to header file · ea0856cd
      Rashika Kheria authored
      Move prototype declaration to header file reiserfs/reiserfs.h from
      reiserfs/super.c because they are used by more than one file.
      
      This eliminates the following warning in reiserfs/bitmap.c:
      
        fs/reiserfs/bitmap.c:647:6: warning: no previous prototype for `show_alloc_options' [-Wmissing-prototypes]
      Signed-off-by: default avatarRashika Kheria <rashika.kheria@gmail.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      Acked-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea0856cd
    • Fabian Frederick's avatar
      fs/hfsplus/attributes.c: add __init to hfsplus_create_attr_tree_cache() · c11e614d
      Fabian Frederick authored
      hfsplus_create_attr_tree_cache is only called by __init init_hfsplus_fs
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Reviewed-by: default avatarVyacheslav Dubeyko <slava@dubeyko.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c11e614d
    • Sougata Santra's avatar
      fs/hfsplus/extents.c: fix concurrent acess of alloc_blocks · d7bdb996
      Sougata Santra authored
      Concurrent access to alloc_blocks in hfsplus_inode_info() is protected
      by extents_lock mutex.  This patch fixes two instances where
      alloc_blocks modification was not protected with this lock.
      
      This fixes possible allocation bitmap corruption in race conditions
      while extending and truncating files.
      
      [akpm@linux-foundation.org: take extents_lock before taking a copy of ->alloc_blocks]
      [akpm@linux-foundation.org: remove now-unused label `out']
      Signed-off-by: default avatarSougata Santra <sougata@tuxera.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Vyacheslav Dubeyko <slava@dubeyko.com>
      Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d7bdb996
    • Sougata Santra's avatar
      fs/hfsplus/extents.c: remove unused variable in hfsplus_get_block · abfeb724
      Sougata Santra authored
      The variable is defined but not used.  Generally it compiles away with
      -O2 optimization hence it does not show a warning.
      Signed-off-by: default avatarSougata Santra <sougata@tuxera.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      abfeb724