Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 14 Nov 2017 20:59:42 +0000 (12:59 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 14 Nov 2017 20:59:42 +0000 (12:59 -0800)
Pull ext4 updates from Ted Ts'o:

 - Add support for online resizing of file systems with bigalloc

 - Fix a two data corruption bugs involving DAX, as well as a corruption
   bug after a crash during a racing fallocate and delayed allocation.

 - Finally, a number of cleanups and optimizations.

* tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
  ext4: improve smp scalability for inode generation
  ext4: add support for online resizing with bigalloc
  ext4: mention noload when recovering on read-only device
  Documentation: fix little inconsistencies
  ext4: convert timers to use timer_setup()
  jbd2: convert timers to use timer_setup()
  ext4: remove duplicate extended attributes defs
  ext4: add ext4_should_use_dax()
  ext4: add sanity check for encryption + DAX
  ext4: prevent data corruption with journaling + DAX
  ext4: prevent data corruption with inline data + DAX
  ext4: fix interaction between i_size, fallocate, and delalloc after a crash
  ext4: retry allocations conservatively
  ext4: Switch to iomap for SEEK_HOLE / SEEK_DATA
  ext4: Add iomap support for inline data
  iomap: Add IOMAP_F_DATA_INLINE flag
  iomap: Switch from blkno to disk offset

13 files changed:
1  2 
fs/buffer.c
fs/ext2/inode.c
fs/ext4/balloc.c
fs/ext4/ext4.h
fs/ext4/file.c
fs/ext4/ialloc.c
fs/ext4/inode.c
fs/ext4/ioctl.c
fs/ext4/resize.c
fs/ext4/super.c
fs/iomap.c
fs/nfsd/blocklayout.c
include/linux/iomap.h

diff --cc fs/buffer.c
Simple merge
diff --cc fs/ext2/inode.c
Simple merge
Simple merge
diff --cc fs/ext4/ext4.h
Simple merge
diff --cc fs/ext4/file.c
Simple merge
Simple merge
diff --cc fs/ext4/inode.c
index 168a1b499cdf2a3b0961ae3a34e0c8a7252724a0,9f836e2ec18cd21d6ef7178402f828b70a2d39a5..2633150e41b963f4fc449a02e68819a532018b67
@@@ -4588,15 -4640,10 +4641,13 @@@ void ext4_set_inode_flags(struct inode 
                new_fl |= S_NOATIME;
        if (flags & EXT4_DIRSYNC_FL)
                new_fl |= S_DIRSYNC;
-       if (test_opt(inode->i_sb, DAX) && S_ISREG(inode->i_mode) &&
-           !ext4_should_journal_data(inode) && !ext4_has_inline_data(inode) &&
-           !(flags & EXT4_ENCRYPT_FL))
+       if (ext4_should_use_dax(inode))
                new_fl |= S_DAX;
 +      if (flags & EXT4_ENCRYPT_FL)
 +              new_fl |= S_ENCRYPTED;
        inode_set_flags(inode, new_fl,
 -                      S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC|S_DAX);
 +                      S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC|S_DAX|
 +                      S_ENCRYPTED);
  }
  
  static blkcnt_t ext4_inode_blocks(struct ext4_inode *raw_inode,
diff --cc fs/ext4/ioctl.c
Simple merge
Simple merge
diff --cc fs/ext4/super.c
Simple merge
diff --cc fs/iomap.c
Simple merge
Simple merge
Simple merge