]> git.itanic.dy.fi Git - linux-stable/commitdiff
ext4: make ext4_forced_shutdown() take struct super_block
authorJan Kara <jack@suse.cz>
Fri, 16 Jun 2023 16:50:49 +0000 (18:50 +0200)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 29 Jul 2023 22:37:24 +0000 (18:37 -0400)
Currently ext4_forced_shutdown() takes struct ext4_sb_info but most
callers need to get it from struct super_block anyway. So just pass in
struct super_block to save all callers from some boilerplate code. No
functional changes.

Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230616165109.21695-3-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
12 files changed:
fs/ext4/ext4.h
fs/ext4/ext4_jbd2.c
fs/ext4/file.c
fs/ext4/fsync.c
fs/ext4/ialloc.c
fs/ext4/inline.c
fs/ext4/inode.c
fs/ext4/ioctl.c
fs/ext4/namei.c
fs/ext4/page-io.c
fs/ext4/super.c
fs/ext4/xattr.c

index 0a2d55faa095ef262c1bd5462b756663aa289706..feb38c9fe1294c12bbc86a27d6d342bd74414f45 100644 (file)
@@ -2222,9 +2222,9 @@ extern int ext4_feature_set_ok(struct super_block *sb, int readonly);
 #define EXT4_FLAGS_SHUTDOWN    1
 #define EXT4_FLAGS_BDEV_IS_DAX 2
 
-static inline int ext4_forced_shutdown(struct ext4_sb_info *sbi)
+static inline int ext4_forced_shutdown(struct super_block *sb)
 {
-       return test_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
+       return test_bit(EXT4_FLAGS_SHUTDOWN, &EXT4_SB(sb)->s_ext4_flags);
 }
 
 /*
index 77f318ec8abb78f712fb95c1b71e6c0e86ef3cbe..b72a22a57d20cad5a2ad5ba1a98e5c4dc2971440 100644 (file)
@@ -67,7 +67,7 @@ static int ext4_journal_check_start(struct super_block *sb)
 
        might_sleep();
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(sb))))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return -EIO;
 
        if (sb_rdonly(sb))
index c457c8517f0fdec2538b4f2cb26734808134eb40..2071b1e4322c5b50a8cd95833ee3ac3b9395a9bc 100644 (file)
@@ -131,7 +131,7 @@ static ssize_t ext4_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
 {
        struct inode *inode = file_inode(iocb->ki_filp);
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        if (!iov_iter_count(to))
@@ -153,7 +153,7 @@ static ssize_t ext4_file_splice_read(struct file *in, loff_t *ppos,
 {
        struct inode *inode = file_inode(in);
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
        return filemap_splice_read(in, ppos, pipe, len, flags);
 }
@@ -709,7 +709,7 @@ ext4_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
 {
        struct inode *inode = file_inode(iocb->ki_filp);
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
 #ifdef CONFIG_FS_DAX
@@ -807,10 +807,9 @@ static const struct vm_operations_struct ext4_file_vm_ops = {
 static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma)
 {
        struct inode *inode = file->f_mapping->host;
-       struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
-       struct dax_device *dax_dev = sbi->s_daxdev;
+       struct dax_device *dax_dev = EXT4_SB(inode->i_sb)->s_daxdev;
 
-       if (unlikely(ext4_forced_shutdown(sbi)))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        /*
@@ -886,7 +885,7 @@ static int ext4_file_open(struct inode *inode, struct file *filp)
 {
        int ret;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        ret = ext4_sample_last_mounted(inode->i_sb, filp->f_path.mnt);
index 0c56f3a011a1f1fd7a0f8103232cccd4f3d63cc9..bffc1d0994f5429ec10de46eafcf13116c2b7f5e 100644 (file)
@@ -133,7 +133,7 @@ int ext4_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
        struct inode *inode = file->f_mapping->host;
        struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
 
-       if (unlikely(ext4_forced_shutdown(sbi)))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        ASSERT(ext4_journal_current_handle() == NULL);
index 754f961cd9fdfbccb3b1280b40a56bcb3b066454..060630c0b0ca08eaaf024128cdebe7a20334a840 100644 (file)
@@ -950,7 +950,7 @@ struct inode *__ext4_new_inode(struct mnt_idmap *idmap,
        sb = dir->i_sb;
        sbi = EXT4_SB(sb);
 
-       if (unlikely(ext4_forced_shutdown(sbi)))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return ERR_PTR(-EIO);
 
        ngroups = ext4_get_groups_count(sb);
index a4b7e4bc32d409f23448c9a55fbf48c44bc9617d..3623dfcc8fc7b93b18456600a6ef034494e2387f 100644 (file)
@@ -228,7 +228,7 @@ static void ext4_write_inline_data(struct inode *inode, struct ext4_iloc *iloc,
        struct ext4_inode *raw_inode;
        int cp_len = 0;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return;
 
        BUG_ON(!EXT4_I(inode)->i_inline_off);
index 43775a6ca5054a485c33932a801928b55240a3c0..c6fa59e57f1ea1075a7d47bdd01edbcf97b1b7b3 100644 (file)
@@ -1114,7 +1114,7 @@ static int ext4_write_begin(struct file *file, struct address_space *mapping,
        pgoff_t index;
        unsigned from, to;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        trace_ext4_write_begin(inode, pos, len);
@@ -2213,7 +2213,7 @@ static int mpage_map_and_submit_extent(handle_t *handle,
                if (err < 0) {
                        struct super_block *sb = inode->i_sb;
 
-                       if (ext4_forced_shutdown(EXT4_SB(sb)) ||
+                       if (ext4_forced_shutdown(sb) ||
                            ext4_test_mount_flag(sb, EXT4_MF_FS_ABORTED))
                                goto invalidate_dirty_pages;
                        /*
@@ -2540,7 +2540,7 @@ static int ext4_do_writepages(struct mpage_da_data *mpd)
         * *never* be called, so if that ever happens, we would want
         * the stack trace.
         */
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(mapping->host->i_sb)) ||
+       if (unlikely(ext4_forced_shutdown(mapping->host->i_sb) ||
                     ext4_test_mount_flag(inode->i_sb, EXT4_MF_FS_ABORTED))) {
                ret = -EROFS;
                goto out_writepages;
@@ -2759,7 +2759,7 @@ static int ext4_writepages(struct address_space *mapping,
        int ret;
        int alloc_ctx;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(sb))))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return -EIO;
 
        alloc_ctx = ext4_writepages_down_read(sb);
@@ -2798,16 +2798,16 @@ static int ext4_dax_writepages(struct address_space *mapping,
        int ret;
        long nr_to_write = wbc->nr_to_write;
        struct inode *inode = mapping->host;
-       struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
        int alloc_ctx;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        alloc_ctx = ext4_writepages_down_read(inode->i_sb);
        trace_ext4_writepages(inode, wbc);
 
-       ret = dax_writeback_mapping_range(mapping, sbi->s_daxdev, wbc);
+       ret = dax_writeback_mapping_range(mapping,
+                                         EXT4_SB(inode->i_sb)->s_daxdev, wbc);
        trace_ext4_writepages_result(inode, wbc, ret,
                                     nr_to_write - wbc->nr_to_write);
        ext4_writepages_up_read(inode->i_sb, alloc_ctx);
@@ -2857,7 +2857,7 @@ static int ext4_da_write_begin(struct file *file, struct address_space *mapping,
        pgoff_t index;
        struct inode *inode = mapping->host;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        index = pos >> PAGE_SHIFT;
@@ -5135,7 +5135,7 @@ int ext4_write_inode(struct inode *inode, struct writeback_control *wbc)
            sb_rdonly(inode->i_sb))
                return 0;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        if (EXT4_SB(inode->i_sb)->s_journal) {
@@ -5255,7 +5255,7 @@ int ext4_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
        const unsigned int ia_valid = attr->ia_valid;
        bool inc_ivers = true;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        if (unlikely(IS_IMMUTABLE(inode)))
@@ -5676,7 +5676,7 @@ int ext4_mark_iloc_dirty(handle_t *handle,
 {
        int err = 0;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) {
+       if (unlikely(ext4_forced_shutdown(inode->i_sb))) {
                put_bh(iloc->bh);
                return -EIO;
        }
@@ -5702,7 +5702,7 @@ ext4_reserve_inode_write(handle_t *handle, struct inode *inode,
 {
        int err;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        err = ext4_get_inode_loc(inode, iloc);
index 331859511f80fa9f47e3c196c08406bb347e055e..0d3aef1118cbc31d09d32ce20aa56193cde82a6a 100644 (file)
@@ -801,7 +801,7 @@ int ext4_force_shutdown(struct super_block *sb, u32 flags)
        if (flags > EXT4_GOING_FLAGS_NOLOGFLUSH)
                return -EINVAL;
 
-       if (ext4_forced_shutdown(sbi))
+       if (ext4_forced_shutdown(sb))
                return 0;
 
        ext4_msg(sb, KERN_ALERT, "shut down requested (%d)", flags);
index 0caf6c730ce34b38a6d4eb7a0a176d4ce93bd2ca..6298cfaaa0bdec895bb4c543a22213d420e84133 100644 (file)
@@ -3142,7 +3142,7 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry)
        struct ext4_dir_entry_2 *de;
        handle_t *handle = NULL;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(dir->i_sb))))
+       if (unlikely(ext4_forced_shutdown(dir->i_sb)))
                return -EIO;
 
        /* Initialize quotas before so that eventual writes go in
@@ -3301,7 +3301,7 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry)
 {
        int retval;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(dir->i_sb))))
+       if (unlikely(ext4_forced_shutdown(dir->i_sb)))
                return -EIO;
 
        trace_ext4_unlink_enter(dir, dentry);
@@ -3369,7 +3369,7 @@ static int ext4_symlink(struct mnt_idmap *idmap, struct inode *dir,
        struct fscrypt_str disk_link;
        int retries = 0;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(dir->i_sb))))
+       if (unlikely(ext4_forced_shutdown(dir->i_sb)))
                return -EIO;
 
        err = fscrypt_prepare_symlink(dir, symname, len, dir->i_sb->s_blocksize,
@@ -4189,7 +4189,7 @@ static int ext4_rename2(struct mnt_idmap *idmap,
 {
        int err;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(old_dir->i_sb))))
+       if (unlikely(ext4_forced_shutdown(old_dir->i_sb)))
                return -EIO;
 
        if (flags & ~(RENAME_NOREPLACE | RENAME_EXCHANGE | RENAME_WHITEOUT))
index 3621f29ec67123e1bdf1d15556c72da8ff71a177..dfdd7e5cf0389088a70ed549ce744496dcd83830 100644 (file)
@@ -184,7 +184,7 @@ static int ext4_end_io_end(ext4_io_end_t *io_end)
 
        io_end->handle = NULL;  /* Following call will use up the handle */
        ret = ext4_convert_unwritten_io_end_vec(handle, io_end);
-       if (ret < 0 && !ext4_forced_shutdown(EXT4_SB(inode->i_sb))) {
+       if (ret < 0 && !ext4_forced_shutdown(inode->i_sb)) {
                ext4_msg(inode->i_sb, KERN_EMERG,
                         "failed to convert unwritten extents to written "
                         "extents -- potential data loss!  "
index 19514f98e2fe8b34c2687fa882cb7e612e1f2368..0038233eafa812d1b54bb682e81a33bcff84bda6 100644 (file)
@@ -758,7 +758,7 @@ void __ext4_error(struct super_block *sb, const char *function,
        struct va_format vaf;
        va_list args;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(sb))))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return;
 
        trace_ext4_error(sb, function, line);
@@ -783,7 +783,7 @@ void __ext4_error_inode(struct inode *inode, const char *function,
        va_list args;
        struct va_format vaf;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return;
 
        trace_ext4_error(inode->i_sb, function, line);
@@ -818,7 +818,7 @@ void __ext4_error_file(struct file *file, const char *function,
        struct inode *inode = file_inode(file);
        char pathname[80], *path;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return;
 
        trace_ext4_error(inode->i_sb, function, line);
@@ -898,7 +898,7 @@ void __ext4_std_error(struct super_block *sb, const char *function,
        char nbuf[16];
        const char *errstr;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(sb))))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return;
 
        /* Special case: if the error is EROFS, and we're not already
@@ -992,7 +992,7 @@ __acquires(bitlock)
        struct va_format vaf;
        va_list args;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(sb))))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return;
 
        trace_ext4_error(sb, function, line);
@@ -6298,7 +6298,7 @@ static int ext4_sync_fs(struct super_block *sb, int wait)
        bool needs_barrier = false;
        struct ext4_sb_info *sbi = EXT4_SB(sb);
 
-       if (unlikely(ext4_forced_shutdown(sbi)))
+       if (unlikely(ext4_forced_shutdown(sb)))
                return 0;
 
        trace_ext4_sync_fs(sb, wait);
@@ -6381,7 +6381,7 @@ static int ext4_freeze(struct super_block *sb)
  */
 static int ext4_unfreeze(struct super_block *sb)
 {
-       if (ext4_forced_shutdown(EXT4_SB(sb)))
+       if (ext4_forced_shutdown(sb))
                return 0;
 
        if (EXT4_SB(sb)->s_journal) {
index 05151d61b00b3d3e32e9ff85e52b6fe38f9927cc..7cc502c06246edf09063572e2a588631ff17f435 100644 (file)
@@ -701,7 +701,7 @@ ext4_xattr_get(struct inode *inode, int name_index, const char *name,
 {
        int error;
 
-       if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb))))
+       if (unlikely(ext4_forced_shutdown(inode->i_sb)))
                return -EIO;
 
        if (strlen(name) > 255)