summaryrefslogtreecommitdiffstats
path: root/fs/ext4/ext4.h
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-17 03:13:47 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-17 03:13:47 -0400
commitad3273d5f1b99d7319a986ab568dcbde2f9e53dd (patch)
tree157e5b5b5c8a32500f98991f216b2082183e62c3 /fs/ext4/ext4.h
parentc0747ad363fff90c2edf490fc089e3ae0920b410 (diff)
parentcce6c9f7e6029caee45c459db5b3e78fec6973cb (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.h20
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 */