@@ -981,6 +981,7 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
981
981
struct iattr * attr )
982
982
{
983
983
struct inode * inode = d_inode (dentry );
984
+ struct f2fs_inode_info * fi = F2FS_I (inode );
984
985
int err ;
985
986
986
987
if (unlikely (f2fs_cp_error (F2FS_I_SB (inode ))))
@@ -999,7 +1000,7 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
999
1000
return - EOPNOTSUPP ;
1000
1001
if (is_inode_flag_set (inode , FI_COMPRESS_RELEASED ) &&
1001
1002
!IS_ALIGNED (attr -> ia_size ,
1002
- F2FS_BLK_TO_BYTES (F2FS_I ( inode ) -> i_cluster_size )))
1003
+ F2FS_BLK_TO_BYTES (fi -> i_cluster_size )))
1003
1004
return - EINVAL ;
1004
1005
}
1005
1006
@@ -1053,7 +1054,7 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
1053
1054
return err ;
1054
1055
}
1055
1056
1056
- f2fs_down_write (& F2FS_I ( inode ) -> i_gc_rwsem [WRITE ]);
1057
+ f2fs_down_write (& fi -> i_gc_rwsem [WRITE ]);
1057
1058
filemap_invalidate_lock (inode -> i_mapping );
1058
1059
1059
1060
truncate_setsize (inode , attr -> ia_size );
@@ -1065,14 +1066,14 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
1065
1066
* larger than i_size.
1066
1067
*/
1067
1068
filemap_invalidate_unlock (inode -> i_mapping );
1068
- f2fs_up_write (& F2FS_I ( inode ) -> i_gc_rwsem [WRITE ]);
1069
+ f2fs_up_write (& fi -> i_gc_rwsem [WRITE ]);
1069
1070
if (err )
1070
1071
return err ;
1071
1072
1072
- spin_lock (& F2FS_I ( inode ) -> i_size_lock );
1073
+ spin_lock (& fi -> i_size_lock );
1073
1074
inode_set_mtime_to_ts (inode , inode_set_ctime_current (inode ));
1074
- F2FS_I ( inode ) -> last_disk_size = i_size_read (inode );
1075
- spin_unlock (& F2FS_I ( inode ) -> i_size_lock );
1075
+ fi -> last_disk_size = i_size_read (inode );
1076
+ spin_unlock (& fi -> i_size_lock );
1076
1077
}
1077
1078
1078
1079
__setattr_copy (idmap , inode , attr );
@@ -1082,7 +1083,7 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
1082
1083
1083
1084
if (is_inode_flag_set (inode , FI_ACL_MODE )) {
1084
1085
if (!err )
1085
- inode -> i_mode = F2FS_I ( inode ) -> i_acl_mode ;
1086
+ inode -> i_mode = fi -> i_acl_mode ;
1086
1087
clear_inode_flag (inode , FI_ACL_MODE );
1087
1088
}
1088
1089
}
@@ -1990,15 +1991,15 @@ static int f2fs_setflags_common(struct inode *inode, u32 iflags, u32 mask)
1990
1991
if (err )
1991
1992
return err ;
1992
1993
1993
- f2fs_down_write (& F2FS_I ( inode ) -> i_sem );
1994
+ f2fs_down_write (& fi -> i_sem );
1994
1995
if (!f2fs_may_compress (inode ) ||
1995
1996
(S_ISREG (inode -> i_mode ) &&
1996
1997
F2FS_HAS_BLOCKS (inode ))) {
1997
- f2fs_up_write (& F2FS_I ( inode ) -> i_sem );
1998
+ f2fs_up_write (& fi -> i_sem );
1998
1999
return - EINVAL ;
1999
2000
}
2000
2001
err = set_compress_context (inode );
2001
- f2fs_up_write (& F2FS_I ( inode ) -> i_sem );
2002
+ f2fs_up_write (& fi -> i_sem );
2002
2003
2003
2004
if (err )
2004
2005
return err ;
@@ -3588,6 +3589,7 @@ static int release_compress_blocks(struct dnode_of_data *dn, pgoff_t count)
3588
3589
static int f2fs_release_compress_blocks (struct file * filp , unsigned long arg )
3589
3590
{
3590
3591
struct inode * inode = file_inode (filp );
3592
+ struct f2fs_inode_info * fi = F2FS_I (inode );
3591
3593
struct f2fs_sb_info * sbi = F2FS_I_SB (inode );
3592
3594
pgoff_t page_idx = 0 , last_idx ;
3593
3595
unsigned int released_blocks = 0 ;
@@ -3625,7 +3627,7 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg)
3625
3627
if (ret )
3626
3628
goto out ;
3627
3629
3628
- if (!atomic_read (& F2FS_I ( inode ) -> i_compr_blocks )) {
3630
+ if (!atomic_read (& fi -> i_compr_blocks )) {
3629
3631
ret = - EPERM ;
3630
3632
goto out ;
3631
3633
}
@@ -3634,7 +3636,7 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg)
3634
3636
inode_set_ctime_current (inode );
3635
3637
f2fs_mark_inode_dirty_sync (inode , true);
3636
3638
3637
- f2fs_down_write (& F2FS_I ( inode ) -> i_gc_rwsem [WRITE ]);
3639
+ f2fs_down_write (& fi -> i_gc_rwsem [WRITE ]);
3638
3640
filemap_invalidate_lock (inode -> i_mapping );
3639
3641
3640
3642
last_idx = DIV_ROUND_UP (i_size_read (inode ), PAGE_SIZE );
@@ -3660,7 +3662,7 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg)
3660
3662
3661
3663
end_offset = ADDRS_PER_PAGE (dn .node_page , inode );
3662
3664
count = min (end_offset - dn .ofs_in_node , last_idx - page_idx );
3663
- count = round_up (count , F2FS_I ( inode ) -> i_cluster_size );
3665
+ count = round_up (count , fi -> i_cluster_size );
3664
3666
3665
3667
ret = release_compress_blocks (& dn , count );
3666
3668
@@ -3676,7 +3678,7 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg)
3676
3678
}
3677
3679
3678
3680
filemap_invalidate_unlock (inode -> i_mapping );
3679
- f2fs_up_write (& F2FS_I ( inode ) -> i_gc_rwsem [WRITE ]);
3681
+ f2fs_up_write (& fi -> i_gc_rwsem [WRITE ]);
3680
3682
out :
3681
3683
if (released_blocks )
3682
3684
f2fs_update_time (sbi , REQ_TIME );
@@ -3687,14 +3689,14 @@ static int f2fs_release_compress_blocks(struct file *filp, unsigned long arg)
3687
3689
if (ret >= 0 ) {
3688
3690
ret = put_user (released_blocks , (u64 __user * )arg );
3689
3691
} else if (released_blocks &&
3690
- atomic_read (& F2FS_I ( inode ) -> i_compr_blocks )) {
3692
+ atomic_read (& fi -> i_compr_blocks )) {
3691
3693
set_sbi_flag (sbi , SBI_NEED_FSCK );
3692
3694
f2fs_warn (sbi , "%s: partial blocks were released i_ino=%lx "
3693
3695
"iblocks=%llu, released=%u, compr_blocks=%u, "
3694
3696
"run fsck to fix." ,
3695
3697
__func__ , inode -> i_ino , inode -> i_blocks ,
3696
3698
released_blocks ,
3697
- atomic_read (& F2FS_I ( inode ) -> i_compr_blocks ));
3699
+ atomic_read (& fi -> i_compr_blocks ));
3698
3700
}
3699
3701
3700
3702
return ret ;
@@ -3783,6 +3785,7 @@ static int reserve_compress_blocks(struct dnode_of_data *dn, pgoff_t count,
3783
3785
static int f2fs_reserve_compress_blocks (struct file * filp , unsigned long arg )
3784
3786
{
3785
3787
struct inode * inode = file_inode (filp );
3788
+ struct f2fs_inode_info * fi = F2FS_I (inode );
3786
3789
struct f2fs_sb_info * sbi = F2FS_I_SB (inode );
3787
3790
pgoff_t page_idx = 0 , last_idx ;
3788
3791
unsigned int reserved_blocks = 0 ;
@@ -3808,10 +3811,10 @@ static int f2fs_reserve_compress_blocks(struct file *filp, unsigned long arg)
3808
3811
goto unlock_inode ;
3809
3812
}
3810
3813
3811
- if (atomic_read (& F2FS_I ( inode ) -> i_compr_blocks ))
3814
+ if (atomic_read (& fi -> i_compr_blocks ))
3812
3815
goto unlock_inode ;
3813
3816
3814
- f2fs_down_write (& F2FS_I ( inode ) -> i_gc_rwsem [WRITE ]);
3817
+ f2fs_down_write (& fi -> i_gc_rwsem [WRITE ]);
3815
3818
filemap_invalidate_lock (inode -> i_mapping );
3816
3819
3817
3820
last_idx = DIV_ROUND_UP (i_size_read (inode ), PAGE_SIZE );
@@ -3837,7 +3840,7 @@ static int f2fs_reserve_compress_blocks(struct file *filp, unsigned long arg)
3837
3840
3838
3841
end_offset = ADDRS_PER_PAGE (dn .node_page , inode );
3839
3842
count = min (end_offset - dn .ofs_in_node , last_idx - page_idx );
3840
- count = round_up (count , F2FS_I ( inode ) -> i_cluster_size );
3843
+ count = round_up (count , fi -> i_cluster_size );
3841
3844
3842
3845
ret = reserve_compress_blocks (& dn , count , & reserved_blocks );
3843
3846
@@ -3852,7 +3855,7 @@ static int f2fs_reserve_compress_blocks(struct file *filp, unsigned long arg)
3852
3855
}
3853
3856
3854
3857
filemap_invalidate_unlock (inode -> i_mapping );
3855
- f2fs_up_write (& F2FS_I ( inode ) -> i_gc_rwsem [WRITE ]);
3858
+ f2fs_up_write (& fi -> i_gc_rwsem [WRITE ]);
3856
3859
3857
3860
if (!ret ) {
3858
3861
clear_inode_flag (inode , FI_COMPRESS_RELEASED );
@@ -3868,14 +3871,14 @@ static int f2fs_reserve_compress_blocks(struct file *filp, unsigned long arg)
3868
3871
if (!ret ) {
3869
3872
ret = put_user (reserved_blocks , (u64 __user * )arg );
3870
3873
} else if (reserved_blocks &&
3871
- atomic_read (& F2FS_I ( inode ) -> i_compr_blocks )) {
3874
+ atomic_read (& fi -> i_compr_blocks )) {
3872
3875
set_sbi_flag (sbi , SBI_NEED_FSCK );
3873
3876
f2fs_warn (sbi , "%s: partial blocks were reserved i_ino=%lx "
3874
3877
"iblocks=%llu, reserved=%u, compr_blocks=%u, "
3875
3878
"run fsck to fix." ,
3876
3879
__func__ , inode -> i_ino , inode -> i_blocks ,
3877
3880
reserved_blocks ,
3878
- atomic_read (& F2FS_I ( inode ) -> i_compr_blocks ));
3881
+ atomic_read (& fi -> i_compr_blocks ));
3879
3882
}
3880
3883
3881
3884
return ret ;
@@ -4101,6 +4104,7 @@ static int f2fs_ioc_get_compress_option(struct file *filp, unsigned long arg)
4101
4104
static int f2fs_ioc_set_compress_option (struct file * filp , unsigned long arg )
4102
4105
{
4103
4106
struct inode * inode = file_inode (filp );
4107
+ struct f2fs_inode_info * fi = F2FS_I (inode );
4104
4108
struct f2fs_sb_info * sbi = F2FS_I_SB (inode );
4105
4109
struct f2fs_comp_option option ;
4106
4110
int ret = 0 ;
@@ -4141,25 +4145,25 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
4141
4145
goto out ;
4142
4146
}
4143
4147
4144
- F2FS_I ( inode ) -> i_compress_algorithm = option .algorithm ;
4145
- F2FS_I ( inode ) -> i_log_cluster_size = option .log_cluster_size ;
4146
- F2FS_I ( inode ) -> i_cluster_size = BIT (option .log_cluster_size );
4148
+ fi -> i_compress_algorithm = option .algorithm ;
4149
+ fi -> i_log_cluster_size = option .log_cluster_size ;
4150
+ fi -> i_cluster_size = BIT (option .log_cluster_size );
4147
4151
/* Set default level */
4148
- if (F2FS_I ( inode ) -> i_compress_algorithm == COMPRESS_ZSTD )
4149
- F2FS_I ( inode ) -> i_compress_level = F2FS_ZSTD_DEFAULT_CLEVEL ;
4152
+ if (fi -> i_compress_algorithm == COMPRESS_ZSTD )
4153
+ fi -> i_compress_level = F2FS_ZSTD_DEFAULT_CLEVEL ;
4150
4154
else
4151
- F2FS_I ( inode ) -> i_compress_level = 0 ;
4155
+ fi -> i_compress_level = 0 ;
4152
4156
/* Adjust mount option level */
4153
4157
if (option .algorithm == F2FS_OPTION (sbi ).compress_algorithm &&
4154
4158
F2FS_OPTION (sbi ).compress_level )
4155
- F2FS_I ( inode ) -> i_compress_level = F2FS_OPTION (sbi ).compress_level ;
4159
+ fi -> i_compress_level = F2FS_OPTION (sbi ).compress_level ;
4156
4160
f2fs_mark_inode_dirty_sync (inode , true);
4157
4161
4158
4162
if (!f2fs_is_compress_backend_ready (inode ))
4159
4163
f2fs_warn (sbi , "compression algorithm is successfully set, "
4160
4164
"but current kernel doesn't support this algorithm." );
4161
4165
out :
4162
- f2fs_up_write (& F2FS_I ( inode ) -> i_sem );
4166
+ f2fs_up_write (& fi -> i_sem );
4163
4167
inode_unlock (inode );
4164
4168
mnt_drop_write_file (filp );
4165
4169
0 commit comments