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_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

Pull more ext4 bugfixes from Ted Ts'o:
"A number of miscellaneous ext4 bugs fixes for v3.11, including a fix
so that if ext4 is built as a module, to allow it to be unloaded"

* tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: flush the extent status cache during EXT4_IOC_SWAP_BOOT
ext4: fix mount/remount error messages for incompatible mount options
ext4: allow the mount options nodelalloc and data=journal

+21 -4
+4 -2
fs/ext4/ioctl.c
··· 77 77 memswap(ei1->i_data, ei2->i_data, sizeof(ei1->i_data)); 78 78 memswap(&ei1->i_flags, &ei2->i_flags, sizeof(ei1->i_flags)); 79 79 memswap(&ei1->i_disksize, &ei2->i_disksize, sizeof(ei1->i_disksize)); 80 - memswap(&ei1->i_es_tree, &ei2->i_es_tree, sizeof(ei1->i_es_tree)); 81 - memswap(&ei1->i_es_lru_nr, &ei2->i_es_lru_nr, sizeof(ei1->i_es_lru_nr)); 80 + ext4_es_remove_extent(inode1, 0, EXT_MAX_BLOCKS); 81 + ext4_es_remove_extent(inode2, 0, EXT_MAX_BLOCKS); 82 + ext4_es_lru_del(inode1); 83 + ext4_es_lru_del(inode2); 82 84 83 85 isize = i_size_read(inode1); 84 86 i_size_write(inode1, i_size_read(inode2));
+17 -2
fs/ext4/super.c
··· 1359 1359 {Opt_delalloc, EXT4_MOUNT_DELALLOC, 1360 1360 MOPT_EXT4_ONLY | MOPT_SET | MOPT_EXPLICIT}, 1361 1361 {Opt_nodelalloc, EXT4_MOUNT_DELALLOC, 1362 - MOPT_EXT4_ONLY | MOPT_CLEAR | MOPT_EXPLICIT}, 1362 + MOPT_EXT4_ONLY | MOPT_CLEAR}, 1363 1363 {Opt_journal_checksum, EXT4_MOUNT_JOURNAL_CHECKSUM, 1364 1364 MOPT_EXT4_ONLY | MOPT_SET}, 1365 1365 {Opt_journal_async_commit, (EXT4_MOUNT_JOURNAL_ASYNC_COMMIT | ··· 3483 3483 } 3484 3484 if (test_opt(sb, DIOREAD_NOLOCK)) { 3485 3485 ext4_msg(sb, KERN_ERR, "can't mount with " 3486 - "both data=journal and delalloc"); 3486 + "both data=journal and dioread_nolock"); 3487 3487 goto failed_mount; 3488 3488 } 3489 3489 if (test_opt(sb, DELALLOC)) ··· 4725 4725 if (!parse_options(data, sb, NULL, &journal_ioprio, 1)) { 4726 4726 err = -EINVAL; 4727 4727 goto restore_opts; 4728 + } 4729 + 4730 + if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) { 4731 + if (test_opt2(sb, EXPLICIT_DELALLOC)) { 4732 + ext4_msg(sb, KERN_ERR, "can't mount with " 4733 + "both data=journal and delalloc"); 4734 + err = -EINVAL; 4735 + goto restore_opts; 4736 + } 4737 + if (test_opt(sb, DIOREAD_NOLOCK)) { 4738 + ext4_msg(sb, KERN_ERR, "can't mount with " 4739 + "both data=journal and dioread_nolock"); 4740 + err = -EINVAL; 4741 + goto restore_opts; 4742 + } 4728 4743 } 4729 4744 4730 4745 if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)