mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge tag 'ext4_for_linus-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o:
"New ext4 features:
- Add support so tune2fs can modify/update the superblock using an
ioctl, without needing write access to the block device
- Add support for 32-bit reserved uid's and gid's
Bug fixes:
- Fix potential warnings and other failures caused by corrupted /
fuzzed file systems
- Fail unaligned direct I/O write with EINVAL instead of silently
falling back to buffered I/O
- Correectly handle fsmap queries for metadata mappings
- Avoid journal stalls caused by writeback throttling
- Add some missing GFP_NOFAIL flags to avoid potential deadlocks
under extremem memory pressure
Cleanups:
- Remove obsolete EXT3 Kconfigs"
* tag 'ext4_for_linus-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: fix checks for orphan inodes
ext4: validate ea_ino and size in check_xattrs
ext4: guard against EA inode refcount underflow in xattr update
ext4: implemet new ioctls to set and get superblock parameters
ext4: add support for 32-bit default reserved uid and gid values
ext4: avoid potential buffer over-read in parse_apply_sb_mount_options()
ext4: fix an off-by-one issue during moving extents
ext4: increase i_disksize to offset + len in ext4_update_disksize_before_punch()
ext4: verify orphan file size is not too big
ext4: fail unaligned direct IO write with EINVAL
ext4: correctly handle queries for metadata mappings
ext4: increase IO priority of fastcommit
ext4: remove obsolete EXT3 config options
jbd2: increase IO priority of checkpoint
ext4: fix potential null deref in ext4_mb_init()
ext4: add ext4_sb_bread_nofail() helper function for ext4_free_branches()
ext4: replace min/max nesting with clamp()
fs: ext4: change GFP_KERNEL to GFP_NOFS to avoid deadlock
This commit is contained in:
@@ -1450,7 +1450,9 @@ struct ext4_super_block {
|
||||
__le16 s_encoding; /* Filename charset encoding */
|
||||
__le16 s_encoding_flags; /* Filename charset encoding flags */
|
||||
__le32 s_orphan_file_inum; /* Inode for tracking orphan inodes */
|
||||
__le32 s_reserved[94]; /* Padding to the end of the block */
|
||||
__le16 s_def_resuid_hi;
|
||||
__le16 s_def_resgid_hi;
|
||||
__le32 s_reserved[93]; /* Padding to the end of the block */
|
||||
__le32 s_checksum; /* crc32c(superblock) */
|
||||
};
|
||||
|
||||
@@ -1820,6 +1822,18 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
|
||||
ino <= le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count));
|
||||
}
|
||||
|
||||
static inline int ext4_get_resuid(struct ext4_super_block *es)
|
||||
{
|
||||
return le16_to_cpu(es->s_def_resuid) |
|
||||
le16_to_cpu(es->s_def_resuid_hi) << 16;
|
||||
}
|
||||
|
||||
static inline int ext4_get_resgid(struct ext4_super_block *es)
|
||||
{
|
||||
return le16_to_cpu(es->s_def_resgid) |
|
||||
le16_to_cpu(es->s_def_resgid_hi) << 16;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns: sbi->field[index]
|
||||
* Used to access an array element from the following sbi fields which require
|
||||
@@ -1989,6 +2003,16 @@ static inline bool ext4_verity_in_progress(struct inode *inode)
|
||||
|
||||
#define NEXT_ORPHAN(inode) EXT4_I(inode)->i_dtime
|
||||
|
||||
/*
|
||||
* Check whether the inode is tracked as orphan (either in orphan file or
|
||||
* orphan list).
|
||||
*/
|
||||
static inline bool ext4_inode_orphan_tracked(struct inode *inode)
|
||||
{
|
||||
return ext4_test_inode_state(inode, EXT4_STATE_ORPHAN_FILE) ||
|
||||
!list_empty(&EXT4_I(inode)->i_orphan);
|
||||
}
|
||||
|
||||
/*
|
||||
* Codes for operating systems
|
||||
*/
|
||||
@@ -3142,6 +3166,8 @@ extern struct buffer_head *ext4_sb_bread(struct super_block *sb,
|
||||
sector_t block, blk_opf_t op_flags);
|
||||
extern struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb,
|
||||
sector_t block);
|
||||
extern struct buffer_head *ext4_sb_bread_nofail(struct super_block *sb,
|
||||
sector_t block);
|
||||
extern void ext4_read_bh_nowait(struct buffer_head *bh, blk_opf_t op_flags,
|
||||
bh_end_io_t *end_io, bool simu_fail);
|
||||
extern int ext4_read_bh(struct buffer_head *bh, blk_opf_t op_flags,
|
||||
|
||||
Reference in New Issue
Block a user