mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 23:21:46 +00:00
Clean ups and miscellaneous bug fixes, in particular for the new
collapse_range and zero_range fallocate functions. In addition, improve the scalability of adding and remove inodes from the orphan list. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABCAAGBQJTk9x7AAoJENNvdpvBGATwQQ4QAN85xkNWWiq0feLGZjUVTre/ JUgRQWXZYVogAQckQoTDXqJt1qKYxO45A8oIoUMI4uzgcFJm7iJIZJAv3Hjd2ftz 48RVwjWHblmBz6e+CdmETpzJUaJr3KXbnk3EDQzagWg3Q64dBU/yT0c4foBO8wfX FI1MNin70r5NGQv6Mp4xNUfMoU6liCrsMO2RWkyxY2rcmxy6tkpNO/NBAPwhmn0e vwKHvnnqKM08Frrt6Lz3MpXGAJ+rhTSvmL+qSRXQn9BcbphdGa4jy+i3HbviRX4N z77UZMgMbfK1V3YHm8KzmmbIHrmIARXUlCM7jp4HPSnb4qhyERrhVmGCJZ8civ6Q 3Cm9WwA93PQDfRX6Kid3K1tR/ql+ryac55o9SM990osrWp4C0IH+P/CdlSN0GspN 3pJTLHUVVcxF6gSnOD+q/JzM8Iudl87Rxb17wA+6eg3AJRaPoQSPJoqtwZ89ZwOz RiZGuugFp7gDOxqo32lJ53fivO/e1zxXxu0dVHHjOnHBVWX063hlcibTg8kvFWg1 7bBvUkvgT5jR+UuDX81wPZ+c0kkmfk4gxT5sHg6RlMKeCYi3uuLmAYgla3AM4j9G GeNNdVTmilH7wMgYB2wxd0C5HofgKgM5YFLZWc0FVSXMeFs5ST2kbLMXAZqzrKPa szHFEJHIGZByXfkP/jix =C1ZV -----END PGP SIGNATURE----- Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 updates from Ted Ts'o: "Clean ups and miscellaneous bug fixes, in particular for the new collapse_range and zero_range fallocate functions. In addition, improve the scalability of adding and remove inodes from the orphan list" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits) ext4: handle symlink properly with inline_data ext4: fix wrong assert in ext4_mb_normalize_request() ext4: fix zeroing of page during writeback ext4: remove unused local variable "stored" from ext4_readdir(...) ext4: fix ZERO_RANGE test failure in data journalling ext4: reduce contention on s_orphan_lock ext4: use sbi in ext4_orphan_{add|del}() ext4: use EXT_MAX_BLOCKS in ext4_es_can_be_merged() ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access ext4: remove unnecessary double parentheses ext4: do not destroy ext4_groupinfo_caches if ext4_mb_init() fails ext4: make local functions static ext4: fix block bitmap validation when bigalloc, ^flex_bg ext4: fix block bitmap initialization under sparse_super2 ext4: find the group descriptors on a 1k-block bigalloc,meta_bg filesystem ext4: avoid unneeded lookup when xattr name is invalid ext4: fix data integrity sync in ordered mode ext4: remove obsoleted check ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode ext4: fix locking for O_APPEND writes ...
This commit is contained in:
commit
f8409abdc5
23 changed files with 516 additions and 441 deletions
|
@ -348,6 +348,7 @@ static struct buffer_head *bclean(handle_t *handle, struct super_block *sb,
|
|||
bh = sb_getblk(sb, blk);
|
||||
if (unlikely(!bh))
|
||||
return ERR_PTR(-ENOMEM);
|
||||
BUFFER_TRACE(bh, "get_write_access");
|
||||
if ((err = ext4_journal_get_write_access(handle, bh))) {
|
||||
brelse(bh);
|
||||
bh = ERR_PTR(err);
|
||||
|
@ -426,6 +427,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
|
|||
if (unlikely(!bh))
|
||||
return -ENOMEM;
|
||||
|
||||
BUFFER_TRACE(bh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, bh);
|
||||
if (err)
|
||||
return err;
|
||||
|
@ -518,6 +520,7 @@ static int setup_new_flex_group_blocks(struct super_block *sb,
|
|||
goto out;
|
||||
}
|
||||
|
||||
BUFFER_TRACE(gdb, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, gdb);
|
||||
if (err) {
|
||||
brelse(gdb);
|
||||
|
@ -790,14 +793,17 @@ static int add_new_gdb(handle_t *handle, struct inode *inode,
|
|||
goto exit_dind;
|
||||
}
|
||||
|
||||
BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
|
||||
if (unlikely(err))
|
||||
goto exit_dind;
|
||||
|
||||
BUFFER_TRACE(gdb_bh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, gdb_bh);
|
||||
if (unlikely(err))
|
||||
goto exit_dind;
|
||||
|
||||
BUFFER_TRACE(dind, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, dind);
|
||||
if (unlikely(err))
|
||||
ext4_std_error(sb, err);
|
||||
|
@ -902,6 +908,7 @@ static int add_new_gdb_meta_bg(struct super_block *sb,
|
|||
EXT4_SB(sb)->s_group_desc = n_group_desc;
|
||||
EXT4_SB(sb)->s_gdb_count++;
|
||||
ext4_kvfree(o_group_desc);
|
||||
BUFFER_TRACE(gdb_bh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, gdb_bh);
|
||||
if (unlikely(err))
|
||||
brelse(gdb_bh);
|
||||
|
@ -977,6 +984,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
|
|||
}
|
||||
|
||||
for (i = 0; i < reserved_gdb; i++) {
|
||||
BUFFER_TRACE(primary[i], "get_write_access");
|
||||
if ((err = ext4_journal_get_write_access(handle, primary[i])))
|
||||
goto exit_bh;
|
||||
}
|
||||
|
@ -1084,6 +1092,7 @@ static void update_backups(struct super_block *sb, int blk_off, char *data,
|
|||
ext4_debug("update metadata backup %llu(+%llu)\n",
|
||||
backup_block, backup_block -
|
||||
ext4_group_first_block_no(sb, group));
|
||||
BUFFER_TRACE(bh, "get_write_access");
|
||||
if ((err = ext4_journal_get_write_access(handle, bh)))
|
||||
break;
|
||||
lock_buffer(bh);
|
||||
|
@ -1163,6 +1172,7 @@ static int ext4_add_new_descs(handle_t *handle, struct super_block *sb,
|
|||
*/
|
||||
if (gdb_off) {
|
||||
gdb_bh = sbi->s_group_desc[gdb_num];
|
||||
BUFFER_TRACE(gdb_bh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, gdb_bh);
|
||||
|
||||
if (!err && reserved_gdb && ext4_bg_num_gdb(sb, group))
|
||||
|
@ -1433,6 +1443,7 @@ static int ext4_flex_group_add(struct super_block *sb,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
BUFFER_TRACE(sbi->s_sbh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, sbi->s_sbh);
|
||||
if (err)
|
||||
goto exit_journal;
|
||||
|
@ -1645,6 +1656,7 @@ static int ext4_group_extend_no_check(struct super_block *sb,
|
|||
return err;
|
||||
}
|
||||
|
||||
BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
|
||||
if (err) {
|
||||
ext4_warning(sb, "error %d on journal write access", err);
|
||||
|
@ -1804,6 +1816,7 @@ static int ext4_convert_meta_bg(struct super_block *sb, struct inode *inode)
|
|||
if (IS_ERR(handle))
|
||||
return PTR_ERR(handle);
|
||||
|
||||
BUFFER_TRACE(sbi->s_sbh, "get_write_access");
|
||||
err = ext4_journal_get_write_access(handle, sbi->s_sbh);
|
||||
if (err)
|
||||
goto errout;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue