Merge branch 'for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 9 Sep 2017 20:27:51 +0000 (13:27 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 9 Sep 2017 20:27:51 +0000 (13:27 -0700)
Pull btrfs updates from David Sterba:
 "The changes range through all types: cleanups, core chagnes, sanity
  checks, fixes, other user visible changes, detailed list below:

   - deprecated: user transaction ioctl

   - mount option ssd does not change allocation alignments

   - degraded read-write mount is allowed if all the raid profile
     constraints are met, now based on more accurate check

   - defrag: do not reset compression afterwards; the NOCOMPRESS flag
     can be now overriden by defrag

   - prep work for better extent reference tracking (related to the
     qgroup slowness with balance)

   - prep work for compression heuristics

   - memory allocation reductions (may help latencies on a loaded
     system)

   - better accounting for io waiting states

   - error handling improvements (removed BUGs)

   - added more sanity checks for shared refs

   - fix readdir vs pagefault deadlock under some circumstances

   - fix for 'no-hole' mode, certain combination of compressed and
     inline extents

   - send: fix emission of invalid clone operations

   - fixup file mode if setting acls fail

   - more fixes from fuzzing

   - oher cleanups"

* 'for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (104 commits)
  btrfs: submit superblock io with REQ_META and REQ_PRIO
  btrfs: remove unnecessary memory barrier in btrfs_direct_IO
  btrfs: remove superfluous chunk_tree argument from btrfs_alloc_dev_extent
  btrfs: Remove chunk_objectid parameter of btrfs_alloc_dev_extent
  btrfs: pass fs_info to btrfs_del_root instead of tree_root
  Btrfs: add one more sanity check for shared ref type
  Btrfs: remove BUG_ON in __add_tree_block
  Btrfs: remove BUG() in add_data_reference
  Btrfs: remove BUG() in print_extent_item
  Btrfs: remove BUG() in btrfs_extent_inline_ref_size
  Btrfs: convert to use btrfs_get_extent_inline_ref_type
  Btrfs: add a helper to retrive extent inline ref type
  btrfs: scrub: simplify scrub worker initialization
  btrfs: scrub: clean up division in scrub_find_csum
  btrfs: scrub: clean up division in __scrub_mark_bitmap
  btrfs: scrub: use bool for flush_all_writes
  btrfs: preserve i_mode if __btrfs_set_acl() fails
  btrfs: Remove extraneous chunk_objectid variable
  btrfs: Remove chunk_objectid argument from btrfs_make_block_group
  btrfs: Remove extra parentheses from condition in copy_items()
  ...

1  2 
fs/btrfs/check-integrity.c
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/inode.c
fs/btrfs/scrub.c
fs/btrfs/volumes.c
fs/btrfs/volumes.h

Simple merge
Simple merge
Simple merge
@@@ -7991,10 -8080,9 +8081,10 @@@ static blk_status_t dio_read_error(stru
        struct extent_io_tree *failure_tree = &BTRFS_I(inode)->io_failure_tree;
        struct bio *bio;
        int isector;
-       int read_mode = 0;
+       unsigned int read_mode = 0;
        int segs;
        int ret;
 +      blk_status_t status;
  
        BUG_ON(bio_op(failed_bio) == REQ_OP_WRITE);
  
        bio_set_op_attrs(bio, REQ_OP_READ, read_mode);
  
        btrfs_debug(BTRFS_I(inode)->root->fs_info,
-                   "Repair DIO Read Error: submitting new dio read[%#x] to this_mirror=%d, in_validation=%d\n",
+                   "repair DIO read error: submitting new dio read[%#x] to this_mirror=%d, in_validation=%d",
                    read_mode, failrec->this_mirror, failrec->in_validation);
  
 -      ret = submit_dio_repair_bio(inode, bio, failrec->this_mirror);
 -      if (ret) {
 +      status = submit_dio_repair_bio(inode, bio, failrec->this_mirror);
 +      if (status) {
                free_io_failure(failure_tree, io_tree, failrec);
                bio_put(bio);
        }
@@@ -8426,9 -8513,8 +8516,9 @@@ static inline blk_status_t btrfs_lookup
        return 0;
  }
  
 -static inline int __btrfs_submit_dio_bio(struct bio *bio, struct inode *inode,
 -                                       u64 file_offset, int async_submit)
 +static inline blk_status_t
 +__btrfs_submit_dio_bio(struct bio *bio, struct inode *inode, u64 file_offset,
-                      int skip_sum, int async_submit)
++                     int async_submit)
  {
        struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
        struct btrfs_dio_private *dip = bio->bi_private;
@@@ -8541,9 -8625,9 +8630,9 @@@ static int btrfs_submit_direct_hook(str
                 */
                atomic_inc(&dip->pending_bios);
  
-               status = __btrfs_submit_dio_bio(bio, inode, file_offset, skip_sum,
 -              ret = __btrfs_submit_dio_bio(bio, inode, file_offset,
 -                                           async_submit);
 -              if (ret) {
++              status = __btrfs_submit_dio_bio(bio, inode, file_offset,
 +                                              async_submit);
 +              if (status) {
                        bio_put(bio);
                        atomic_dec(&dip->pending_bios);
                        goto out_err;
        } while (submit_len > 0);
  
  submit:
-       status = __btrfs_submit_dio_bio(bio, inode, file_offset, skip_sum,
-                                       async_submit);
 -      ret = __btrfs_submit_dio_bio(bio, inode, file_offset, async_submit);
 -      if (!ret)
++      status = __btrfs_submit_dio_bio(bio, inode, file_offset, async_submit);
 +      if (!status)
                return 0;
  
        bio_put(bio);
Simple merge
Simple merge
Simple merge