mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 08:01:59 +00:00
Two ext4 bug fixes, one via a revert of a commit sent during the merge window.
-----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEK2m5VNv+CHkogTfJ8vlZVpUNgaMFAl+t+7EACgkQ8vlZVpUN gaN6nQf+OzMMrP/QWF6fRG/ocQTgm4UZ/lo3REfZa8dRrFH+6qjtoFrmSnK7e+MJ V+639IYvHknDEgvap2yF8S6g06nAqb2HeSCHnkxdS3tCh5ZLgo2XmFOtB/WxZLnU Cx8dv9kw+mWJPdoRqJ+A4jn5cW2j3VLGNyJIdyIikkTb8L92fZRa/jKVZeIb84xX FEyshnzb3rV6ba0XdE99gWkabIAnnIsSwkF6SPhcqJpI3Lt1jkkV3D5h6DDoDz8d YpIA/6oPhEM2KwRgx9RJPdNRzHgmwWr2ti/0YLqlLNHWz1oZqi9K6yimXCfccwSU oCdK38tMWAFNiOGaijYx5xS3oNV+Dg== =9MzH -----END PGP SIGNATURE----- Merge tag 'ext4_for_linus_bugfixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 fixes from Ted Ts'o: "Two ext4 bug fixes, one being a revert of a commit sent during the merge window" * tag 'ext4_for_linus_bugfixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: Revert "ext4: fix superblock checksum calculation race" ext4: handle dax mount option collision
This commit is contained in:
commit
d3ba7afcc1
@ -1231,13 +1231,13 @@ struct ext4_inode_info {
|
||||
blocks */
|
||||
#define EXT4_MOUNT2_HURD_COMPAT 0x00000004 /* Support HURD-castrated
|
||||
file systems */
|
||||
#define EXT4_MOUNT2_DAX_NEVER 0x00000008 /* Do not allow Direct Access */
|
||||
#define EXT4_MOUNT2_DAX_INODE 0x00000010 /* For printing options only */
|
||||
|
||||
#define EXT4_MOUNT2_EXPLICIT_JOURNAL_CHECKSUM 0x00000008 /* User explicitly
|
||||
specified journal checksum */
|
||||
|
||||
#define EXT4_MOUNT2_JOURNAL_FAST_COMMIT 0x00000010 /* Journal fast commit */
|
||||
#define EXT4_MOUNT2_DAX_NEVER 0x00000020 /* Do not allow Direct Access */
|
||||
#define EXT4_MOUNT2_DAX_INODE 0x00000040 /* For printing options only */
|
||||
|
||||
|
||||
#define clear_opt(sb, opt) EXT4_SB(sb)->s_mount_opt &= \
|
||||
~EXT4_MOUNT_##opt
|
||||
|
@ -289,18 +289,7 @@ void ext4_superblock_csum_set(struct super_block *sb)
|
||||
if (!ext4_has_metadata_csum(sb))
|
||||
return;
|
||||
|
||||
/*
|
||||
* Locking the superblock prevents the scenario
|
||||
* where:
|
||||
* 1) a first thread pauses during checksum calculation.
|
||||
* 2) a second thread updates the superblock, recalculates
|
||||
* the checksum, and updates s_checksum
|
||||
* 3) the first thread resumes and finishes its checksum calculation
|
||||
* and updates s_checksum with a potentially stale or torn value.
|
||||
*/
|
||||
lock_buffer(EXT4_SB(sb)->s_sbh);
|
||||
es->s_checksum = ext4_superblock_csum(sb, es);
|
||||
unlock_buffer(EXT4_SB(sb)->s_sbh);
|
||||
}
|
||||
|
||||
ext4_fsblk_t ext4_block_bitmap(struct super_block *sb,
|
||||
|
Loading…
Reference in New Issue
Block a user