diff options
author | Qu Wenruo <wqu@suse.com> | 2024-07-13 12:03:44 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2024-07-19 18:20:23 +0300 |
commit | c3ece6b7ffb4a7c00e8d53cbf4026a32b6127914 (patch) | |
tree | 3efd8c387863d20ab8fa0ed177b19141affff292 /fs/btrfs/super.h | |
parent | 8e7860543a94784d744c7ce34b78a2e11beefa5c (diff) | |
download | linux-c3ece6b7ffb4a7c00e8d53cbf4026a32b6127914.tar.xz |
btrfs: change BTRFS_MOUNT_* flags to 64bit type
Currently the BTRFS_MOUNT_* flags are already beyond 32 bits, this is
going to cause compilation errors for some 32 bit systems, as their
unsigned long is only 32 bits long, thus flag
BTRFS_MOUNT_IGNORESUPERFLAGS overflows and can lead to errors.
Fix the problem by:
- Migrate all existing BTRFS_MOUNT_* flags to unsigned long long
- Migrate all mount option related variables to unsigned long long
* btrfs_fs_info::mount_opt
* btrfs_fs_context::mount_opt
* mount_opt parameter of btrfs_check_options()
* old_opts parameter of btrfs_remount_begin()
* old_opts parameter of btrfs_remount_cleanup()
* mount_opt parameter of btrfs_check_mountopts_zoned()
* mount_opt and opt parameters of check_ro_option()
Fixes: 32e6216512b4 ("btrfs: introduce new "rescue=ignoresuperflags" mount option")
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/super.h')
-rw-r--r-- | fs/btrfs/super.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/super.h b/fs/btrfs/super.h index d2b8ebb46bc6..d80a86acfbbe 100644 --- a/fs/btrfs/super.h +++ b/fs/btrfs/super.h @@ -10,7 +10,8 @@ struct super_block; struct btrfs_fs_info; -bool btrfs_check_options(const struct btrfs_fs_info *info, unsigned long *mount_opt, +bool btrfs_check_options(const struct btrfs_fs_info *info, + unsigned long long *mount_opt, unsigned long flags); int btrfs_sync_fs(struct super_block *sb, int wait); char *btrfs_get_subvol_name_from_objectid(struct btrfs_fs_info *fs_info, |