| From b3ab9a70faf38f8534c794317d6ef4e0d4bb1e9a Mon Sep 17 00:00:00 2001 |
| From: Eric Biggers <ebiggers@google.com> |
| Date: Wed, 19 Feb 2020 10:30:46 -0800 |
| Subject: [PATCH] ext4: rename s_journal_flag_rwsem to s_writepages_rwsem |
| |
| commit bbd55937de8f2754adc5792b0f8e5ff7d9c0420e upstream. |
| |
| In preparation for making s_journal_flag_rwsem synchronize |
| ext4_writepages() with changes to both the EXTENTS and JOURNAL_DATA |
| flags (rather than just JOURNAL_DATA as it does currently), rename it to |
| s_writepages_rwsem. |
| |
| Link: https://lore.kernel.org/r/20200219183047.47417-2-ebiggers@kernel.org |
| Signed-off-by: Eric Biggers <ebiggers@google.com> |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Reviewed-by: Jan Kara <jack@suse.cz> |
| Cc: stable@kernel.org |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h |
| index 9ecfedbda349..05e103b25b5f 100644 |
| --- a/fs/ext4/ext4.h |
| +++ b/fs/ext4/ext4.h |
| @@ -1532,7 +1532,7 @@ struct ext4_sb_info { |
| struct ratelimit_state s_msg_ratelimit_state; |
| |
| /* Barrier between changing inodes' journal flags and writepages ops. */ |
| - struct percpu_rw_semaphore s_journal_flag_rwsem; |
| + struct percpu_rw_semaphore s_writepages_rwsem; |
| struct dax_device *s_daxdev; |
| }; |
| |
| diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c |
| index 16ab90172805..ac4d3c9fbd79 100644 |
| --- a/fs/ext4/inode.c |
| +++ b/fs/ext4/inode.c |
| @@ -2752,7 +2752,7 @@ static int ext4_writepages(struct address_space *mapping, |
| if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) |
| return -EIO; |
| |
| - percpu_down_read(&sbi->s_journal_flag_rwsem); |
| + percpu_down_read(&sbi->s_writepages_rwsem); |
| trace_ext4_writepages(inode, wbc); |
| |
| /* |
| @@ -2973,7 +2973,7 @@ static int ext4_writepages(struct address_space *mapping, |
| out_writepages: |
| trace_ext4_writepages_result(inode, wbc, ret, |
| nr_to_write - wbc->nr_to_write); |
| - percpu_up_read(&sbi->s_journal_flag_rwsem); |
| + percpu_up_read(&sbi->s_writepages_rwsem); |
| return ret; |
| } |
| |
| @@ -2988,13 +2988,13 @@ static int ext4_dax_writepages(struct address_space *mapping, |
| if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) |
| return -EIO; |
| |
| - percpu_down_read(&sbi->s_journal_flag_rwsem); |
| + percpu_down_read(&sbi->s_writepages_rwsem); |
| trace_ext4_writepages(inode, wbc); |
| |
| ret = dax_writeback_mapping_range(mapping, inode->i_sb->s_bdev, wbc); |
| trace_ext4_writepages_result(inode, wbc, ret, |
| nr_to_write - wbc->nr_to_write); |
| - percpu_up_read(&sbi->s_journal_flag_rwsem); |
| + percpu_up_read(&sbi->s_writepages_rwsem); |
| return ret; |
| } |
| |
| @@ -6205,7 +6205,7 @@ int ext4_change_inode_journal_flag(struct inode *inode, int val) |
| } |
| } |
| |
| - percpu_down_write(&sbi->s_journal_flag_rwsem); |
| + percpu_down_write(&sbi->s_writepages_rwsem); |
| jbd2_journal_lock_updates(journal); |
| |
| /* |
| @@ -6222,7 +6222,7 @@ int ext4_change_inode_journal_flag(struct inode *inode, int val) |
| err = jbd2_journal_flush(journal); |
| if (err < 0) { |
| jbd2_journal_unlock_updates(journal); |
| - percpu_up_write(&sbi->s_journal_flag_rwsem); |
| + percpu_up_write(&sbi->s_writepages_rwsem); |
| return err; |
| } |
| ext4_clear_inode_flag(inode, EXT4_INODE_JOURNAL_DATA); |
| @@ -6230,7 +6230,7 @@ int ext4_change_inode_journal_flag(struct inode *inode, int val) |
| ext4_set_aops(inode); |
| |
| jbd2_journal_unlock_updates(journal); |
| - percpu_up_write(&sbi->s_journal_flag_rwsem); |
| + percpu_up_write(&sbi->s_writepages_rwsem); |
| |
| if (val) |
| up_write(&EXT4_I(inode)->i_mmap_sem); |
| diff --git a/fs/ext4/super.c b/fs/ext4/super.c |
| index 93c098bec738..6a82443f1e81 100644 |
| --- a/fs/ext4/super.c |
| +++ b/fs/ext4/super.c |
| @@ -1018,7 +1018,7 @@ static void ext4_put_super(struct super_block *sb) |
| percpu_counter_destroy(&sbi->s_freeinodes_counter); |
| percpu_counter_destroy(&sbi->s_dirs_counter); |
| percpu_counter_destroy(&sbi->s_dirtyclusters_counter); |
| - percpu_free_rwsem(&sbi->s_journal_flag_rwsem); |
| + percpu_free_rwsem(&sbi->s_writepages_rwsem); |
| #ifdef CONFIG_QUOTA |
| for (i = 0; i < EXT4_MAXQUOTAS; i++) |
| kfree(get_qf_name(sb, sbi, i)); |
| @@ -4563,7 +4563,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) |
| err = percpu_counter_init(&sbi->s_dirtyclusters_counter, 0, |
| GFP_KERNEL); |
| if (!err) |
| - err = percpu_init_rwsem(&sbi->s_journal_flag_rwsem); |
| + err = percpu_init_rwsem(&sbi->s_writepages_rwsem); |
| |
| if (err) { |
| ext4_msg(sb, KERN_ERR, "insufficient memory"); |
| @@ -4663,7 +4663,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) |
| percpu_counter_destroy(&sbi->s_freeinodes_counter); |
| percpu_counter_destroy(&sbi->s_dirs_counter); |
| percpu_counter_destroy(&sbi->s_dirtyclusters_counter); |
| - percpu_free_rwsem(&sbi->s_journal_flag_rwsem); |
| + percpu_free_rwsem(&sbi->s_writepages_rwsem); |
| failed_mount5: |
| ext4_ext_release(sb); |
| ext4_release_system_zone(sb); |
| -- |
| 2.7.4 |
| |