exfat: remove i_size_write() from __exfat_truncate()
authorYuezhang Mo <Yuezhang.Mo@sony.com>
Mon, 28 Mar 2022 08:37:58 +0000 (16:37 +0800)
committerNamjae Jeon <linkinjeon@kernel.org>
Mon, 12 Dec 2022 02:02:51 +0000 (11:02 +0900)
The file/directory size is updated into inode by i_size_write()
before __exfat_truncate() is called, so it is redundant to
re-update by i_size_write() in __exfat_truncate().

Code refinement, no functional changes.

Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com>
Reviewed-by: Andy Wu <Andy.Wu@sony.com>
Reviewed-by: Aoyama Wataru <wataru.aoyama@sony.com>
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
fs/exfat/exfat_fs.h
fs/exfat/file.c
fs/exfat/inode.c

index ae04880..a1e7feb 100644 (file)
@@ -448,7 +448,7 @@ int exfat_trim_fs(struct inode *inode, struct fstrim_range *range);
 
 /* file.c */
 extern const struct file_operations exfat_file_operations;
-int __exfat_truncate(struct inode *inode, loff_t new_size);
+int __exfat_truncate(struct inode *inode);
 void exfat_truncate(struct inode *inode);
 int exfat_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
                  struct iattr *attr);
index 7c97c1d..f5b2907 100644 (file)
@@ -93,7 +93,7 @@ static int exfat_sanitize_mode(const struct exfat_sb_info *sbi,
 }
 
 /* resize the file length */
-int __exfat_truncate(struct inode *inode, loff_t new_size)
+int __exfat_truncate(struct inode *inode)
 {
        unsigned int num_clusters_new, num_clusters_phys;
        unsigned int last_clu = EXFAT_FREE_CLUSTER;
@@ -113,7 +113,7 @@ int __exfat_truncate(struct inode *inode, loff_t new_size)
 
        exfat_chain_set(&clu, ei->start_clu, num_clusters_phys, ei->flags);
 
-       if (new_size > 0) {
+       if (i_size_read(inode) > 0) {
                /*
                 * Truncate FAT chain num_clusters after the first cluster
                 * num_clusters = min(new, phys);
@@ -143,8 +143,6 @@ int __exfat_truncate(struct inode *inode, loff_t new_size)
                ei->start_clu = EXFAT_EOF_CLUSTER;
        }
 
-       i_size_write(inode, new_size);
-
        if (ei->type == TYPE_FILE)
                ei->attr |= ATTR_ARCHIVE;
 
@@ -207,7 +205,7 @@ void exfat_truncate(struct inode *inode)
                goto write_size;
        }
 
-       err = __exfat_truncate(inode, i_size_read(inode));
+       err = __exfat_truncate(inode);
        if (err)
                goto write_size;
 
index 0d147f8..95adc4b 100644 (file)
@@ -626,7 +626,7 @@ void exfat_evict_inode(struct inode *inode)
        if (!inode->i_nlink) {
                i_size_write(inode, 0);
                mutex_lock(&EXFAT_SB(inode->i_sb)->s_lock);
-               __exfat_truncate(inode, 0);
+               __exfat_truncate(inode);
                mutex_unlock(&EXFAT_SB(inode->i_sb)->s_lock);
        }