diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-09-17 03:13:47 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-09-17 03:13:47 -0400 |
commit | ad3273d5f1b99d7319a986ab568dcbde2f9e53dd (patch) | |
tree | 157e5b5b5c8a32500f98991f216b2082183e62c3 /fs/ext4/ext4.h | |
parent | c0747ad363fff90c2edf490fc089e3ae0920b410 (diff) | |
parent | cce6c9f7e6029caee45c459db5b3e78fec6973cb (diff) |
Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Ted writes:
Various ext4 bug fixes; primarily making ext4 more robust against
maliciously crafted file systems, and some DAX fixes.
* tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4, dax: set ext4_dax_aops for dax files
ext4, dax: add ext4_bmap to ext4_dax_aops
ext4: don't mark mmp buffer head dirty
ext4: show test_dummy_encryption mount option in /proc/mounts
ext4: close race between direct IO and ext4_break_layouts()
ext4: fix online resizing for bigalloc file systems with a 1k block size
ext4: fix online resize's handling of a too-small final block group
ext4: recalucate superblock checksum after updating free blocks/inodes
ext4: avoid arithemetic overflow that can trigger a BUG
ext4: avoid divide by zero fault when deleting corrupted inline directories
ext4: check to make sure the rename(2)'s destination is not freed
ext4: add nonstring annotations to ext4.h
Diffstat (limited to 'fs/ext4/ext4.h')
-rw-r--r-- | fs/ext4/ext4.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 0f0edd1cd0cd..caff935fbeb8 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -43,6 +43,17 @@ | |||
43 | #define __FS_HAS_ENCRYPTION IS_ENABLED(CONFIG_EXT4_FS_ENCRYPTION) | 43 | #define __FS_HAS_ENCRYPTION IS_ENABLED(CONFIG_EXT4_FS_ENCRYPTION) |
44 | #include <linux/fscrypt.h> | 44 | #include <linux/fscrypt.h> |
45 | 45 | ||
46 | #include <linux/compiler.h> | ||
47 | |||
48 | /* Until this gets included into linux/compiler-gcc.h */ | ||
49 | #ifndef __nonstring | ||
50 | #if defined(GCC_VERSION) && (GCC_VERSION >= 80000) | ||
51 | #define __nonstring __attribute__((nonstring)) | ||
52 | #else | ||
53 | #define __nonstring | ||
54 | #endif | ||
55 | #endif | ||
56 | |||
46 | /* | 57 | /* |
47 | * The fourth extended filesystem constants/structures | 58 | * The fourth extended filesystem constants/structures |
48 | */ | 59 | */ |
@@ -675,6 +686,9 @@ enum { | |||
675 | /* Max physical block we can address w/o extents */ | 686 | /* Max physical block we can address w/o extents */ |
676 | #define EXT4_MAX_BLOCK_FILE_PHYS 0xFFFFFFFF | 687 | #define EXT4_MAX_BLOCK_FILE_PHYS 0xFFFFFFFF |
677 | 688 | ||
689 | /* Max logical block we can support */ | ||
690 | #define EXT4_MAX_LOGICAL_BLOCK 0xFFFFFFFF | ||
691 | |||
678 | /* | 692 | /* |
679 | * Structure of an inode on the disk | 693 | * Structure of an inode on the disk |
680 | */ | 694 | */ |
@@ -1226,7 +1240,7 @@ struct ext4_super_block { | |||
1226 | __le32 s_feature_ro_compat; /* readonly-compatible feature set */ | 1240 | __le32 s_feature_ro_compat; /* readonly-compatible feature set */ |
1227 | /*68*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */ | 1241 | /*68*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */ |
1228 | /*78*/ char s_volume_name[16]; /* volume name */ | 1242 | /*78*/ char s_volume_name[16]; /* volume name */ |
1229 | /*88*/ char s_last_mounted[64]; /* directory where last mounted */ | 1243 | /*88*/ char s_last_mounted[64] __nonstring; /* directory where last mounted */ |
1230 | /*C8*/ __le32 s_algorithm_usage_bitmap; /* For compression */ | 1244 | /*C8*/ __le32 s_algorithm_usage_bitmap; /* For compression */ |
1231 | /* | 1245 | /* |
1232 | * Performance hints. Directory preallocation should only | 1246 | * Performance hints. Directory preallocation should only |
@@ -1277,13 +1291,13 @@ struct ext4_super_block { | |||
1277 | __le32 s_first_error_time; /* first time an error happened */ | 1291 | __le32 s_first_error_time; /* first time an error happened */ |
1278 | __le32 s_first_error_ino; /* inode involved in first error */ | 1292 | __le32 s_first_error_ino; /* inode involved in first error */ |
1279 | __le64 s_first_error_block; /* block involved of first error */ | 1293 | __le64 s_first_error_block; /* block involved of first error */ |
1280 | __u8 s_first_error_func[32]; /* function where the error happened */ | 1294 | __u8 s_first_error_func[32] __nonstring; /* function where the error happened */ |
1281 | __le32 s_first_error_line; /* line number where error happened */ | 1295 | __le32 s_first_error_line; /* line number where error happened */ |
1282 | __le32 s_last_error_time; /* most recent time of an error */ | 1296 | __le32 s_last_error_time; /* most recent time of an error */ |
1283 | __le32 s_last_error_ino; /* inode involved in last error */ | 1297 | __le32 s_last_error_ino; /* inode involved in last error */ |
1284 | __le32 s_last_error_line; /* line number where error happened */ | 1298 | __le32 s_last_error_line; /* line number where error happened */ |
1285 | __le64 s_last_error_block; /* block involved of last error */ | 1299 | __le64 s_last_error_block; /* block involved of last error */ |
1286 | __u8 s_last_error_func[32]; /* function where the error happened */ | 1300 | __u8 s_last_error_func[32] __nonstring; /* function where the error happened */ |
1287 | #define EXT4_S_ERR_END offsetof(struct ext4_super_block, s_mount_opts) | 1301 | #define EXT4_S_ERR_END offsetof(struct ext4_super_block, s_mount_opts) |
1288 | __u8 s_mount_opts[64]; | 1302 | __u8 s_mount_opts[64]; |
1289 | __le32 s_usr_quota_inum; /* inode for tracking user quota */ | 1303 | __le32 s_usr_quota_inum; /* inode for tracking user quota */ |