Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'ext4_for_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

Pull ext4 fixes from Ted Ts'o:
"Fix a regression which caused us to fail to interpret symlinks in very
ancient ext3 file system images.

Also fix two xfstests failures, one of which could cause an OOPS, plus
an additional bug fix caught by fuzz testing"

* tag 'ext4_for_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: fix crash when a directory's i_size is too small
ext4: add missing error check in __ext4_new_inode()
ext4: fix fdatasync(2) after fallocate(2) operation
ext4: support fast symlinks from ext3 file systems

+16
+1
fs/ext4/extents.c
··· 4722 4722 EXT4_INODE_EOFBLOCKS); 4723 4723 } 4724 4724 ext4_mark_inode_dirty(handle, inode); 4725 + ext4_update_inode_fsync_trans(handle, inode, 1); 4725 4726 ret2 = ext4_journal_stop(handle); 4726 4727 if (ret2) 4727 4728 break;
+2
fs/ext4/ialloc.c
··· 816 816 #ifdef CONFIG_EXT4_FS_POSIX_ACL 817 817 struct posix_acl *p = get_acl(dir, ACL_TYPE_DEFAULT); 818 818 819 + if (IS_ERR(p)) 820 + return ERR_CAST(p); 819 821 if (p) { 820 822 int acl_size = p->a_count * sizeof(ext4_acl_entry); 821 823
+9
fs/ext4/inode.c
··· 149 149 */ 150 150 int ext4_inode_is_fast_symlink(struct inode *inode) 151 151 { 152 + if (!(EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL)) { 153 + int ea_blocks = EXT4_I(inode)->i_file_acl ? 154 + EXT4_CLUSTER_SIZE(inode->i_sb) >> 9 : 0; 155 + 156 + if (ext4_has_inline_data(inode)) 157 + return 0; 158 + 159 + return (S_ISLNK(inode->i_mode) && inode->i_blocks - ea_blocks == 0); 160 + } 152 161 return S_ISLNK(inode->i_mode) && inode->i_size && 153 162 (inode->i_size < EXT4_N_BLOCKS * 4); 154 163 }
+4
fs/ext4/namei.c
··· 1399 1399 "falling back\n")); 1400 1400 } 1401 1401 nblocks = dir->i_size >> EXT4_BLOCK_SIZE_BITS(sb); 1402 + if (!nblocks) { 1403 + ret = NULL; 1404 + goto cleanup_and_exit; 1405 + } 1402 1406 start = EXT4_I(dir)->i_dir_start_lookup; 1403 1407 if (start >= nblocks) 1404 1408 start = 0;