1. 18 Apr, 2014 8 commits
  2. 15 Apr, 2014 2 commits
    • Theodore Ts'o's avatar
      ext4: remove temporary shim used to merge COLLAPSE_RANGE and ZERO_RANGE · 50e02fd8
      Theodore Ts'o authored
      In retrospect, this was a bad way to handle things, since it limited
      testing of these patches.  We should just get the VFS level changes
      merged in first.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      50e02fd8
    • Azat Khuzhin's avatar
      ext4: fix ext4_count_free_clusters() with EXT4FS_DEBUG and bigalloc enabled · 036acea2
      Azat Khuzhin authored
      With bigalloc enabled we must use EXT4_CLUSTERS_PER_GROUP() instead of
      EXT4_BLOCKS_PER_GROUP() otherwise we will go beyond the allocated buffer.
      
      $ mount -t ext4 /dev/vde /vde
      [   70.573993] EXT4-fs DEBUG (fs/ext4/mballoc.c, 2346): ext4_mb_alloc_groupinfo:
      [   70.575174] allocated s_groupinfo array for 1 meta_bg's
      [   70.576172] EXT4-fs DEBUG (fs/ext4/super.c, 2092): ext4_check_descriptors:
      [   70.576972] Checking group descriptorsBUG: unable to handle kernel paging request at ffff88006ab56000
      [   72.463686] IP: [<ffffffff81394eb9>] __bitmap_weight+0x2a/0x7f
      [   72.464168] PGD 295e067 PUD 2961067 PMD 7fa8e067 PTE 800000006ab56060
      [   72.464738] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
      [   72.465139] Modules linked in:
      [   72.465402] CPU: 1 PID: 3560 Comm: mount Tainted: G        W    3.14.0-rc2-00069-ge57bce1 #60
      [   72.466079] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      [   72.466505] task: ffff88007ce6c8a0 ti: ffff88006b7f0000 task.ti: ffff88006b7f0000
      [   72.466505] RIP: 0010:[<ffffffff81394eb9>]  [<ffffffff81394eb9>] __bitmap_weight+0x2a/0x7f
      [   72.466505] RSP: 0018:ffff88006b7f1c00  EFLAGS: 00010206
      [   72.466505] RAX: 0000000000000000 RBX: 000000000000050a RCX: 0000000000000040
      [   72.466505] RDX: 0000000000000000 RSI: 0000000000080000 RDI: 0000000000000000
      [   72.466505] RBP: ffff88006b7f1c28 R08: 0000000000000002 R09: 0000000000000000
      [   72.466505] R10: 000000000000babe R11: 0000000000000400 R12: 0000000000080000
      [   72.466505] R13: 0000000000000200 R14: 0000000000002000 R15: ffff88006ab55000
      [   72.466505] FS:  00007f43ba1fa840(0000) GS:ffff88007f800000(0000) knlGS:0000000000000000
      [   72.466505] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [   72.466505] CR2: ffff88006ab56000 CR3: 000000006b7e6000 CR4: 00000000000006e0
      [   72.466505] Stack:
      [   72.466505]  ffff88006ab65000 0000000000000000 0000000000000000 0000000000010000
      [   72.466505]  ffff88006ab6f400 ffff88006b7f1c58 ffffffff81396bb8 0000000000010000
      [   72.466505]  0000000000000000 ffff88007b869a90 ffff88006a48a000 ffff88006b7f1c70
      [   72.466505] Call Trace:
      [   72.466505]  [<ffffffff81396bb8>] memweight+0x5f/0x8a
      [   72.466505]  [<ffffffff811c3b19>] ext4_count_free+0x13/0x21
      [   72.466505]  [<ffffffff811c396c>] ext4_count_free_clusters+0xdb/0x171
      [   72.466505]  [<ffffffff811e3bdd>] ext4_fill_super+0x117c/0x28ef
      [   72.466505]  [<ffffffff81391569>] ? vsnprintf+0x1c7/0x3f7
      [   72.466505]  [<ffffffff8114d8dc>] mount_bdev+0x145/0x19c
      [   72.466505]  [<ffffffff811e2a61>] ? ext4_calculate_overhead+0x2a1/0x2a1
      [   72.466505]  [<ffffffff811dab1d>] ext4_mount+0x15/0x17
      [   72.466505]  [<ffffffff8114e3aa>] mount_fs+0x67/0x150
      [   72.466505]  [<ffffffff811637ea>] vfs_kern_mount+0x64/0xde
      [   72.466505]  [<ffffffff81165d19>] do_mount+0x6fe/0x7f5
      [   72.466505]  [<ffffffff81126cc8>] ? strndup_user+0x3a/0xd9
      [   72.466505]  [<ffffffff8116604b>] SyS_mount+0x85/0xbe
      [   72.466505]  [<ffffffff81619e90>] tracesys+0xdd/0xe2
      [   72.466505] Code: c3 89 f0 b9 40 00 00 00 55 99 48 89 e5 41 57 f7 f9 41 56 49 89 ff 41 55 45 31 ed 41 54 41 89 f4 53 31 db 41 89 c6 45 39 ee 7e 10 <4b> 8b 3c ef 49 ff c5 e8 bf ff ff ff 01 c3 eb eb 31 c0 45 85 f6
      [   72.466505] RIP  [<ffffffff81394eb9>] __bitmap_weight+0x2a/0x7f
      [   72.466505]  RSP <ffff88006b7f1c00>
      [   72.466505] CR2: ffff88006ab56000
      [   72.466505] ---[ end trace 7d051a08ae138573 ]---
      Killed
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      036acea2
  3. 13 Apr, 2014 4 commits
  4. 12 Apr, 2014 6 commits
  5. 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
  6. 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
  7. 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
  8. 04 Apr, 2014 11 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