Revert "block: don't call into the driver for BLKROSET"
[platform/kernel/linux-rpi.git] / fs / exfat / file.c
index 6af0191..d890fd3 100644 (file)
@@ -110,8 +110,7 @@ int __exfat_truncate(struct inode *inode, loff_t new_size)
        exfat_set_volume_dirty(sb);
 
        num_clusters_new = EXFAT_B_TO_CLU_ROUND_UP(i_size_read(inode), sbi);
-       num_clusters_phys =
-               EXFAT_B_TO_CLU_ROUND_UP(EXFAT_I(inode)->i_size_ondisk, sbi);
+       num_clusters_phys = EXFAT_B_TO_CLU_ROUND_UP(ei->i_size_ondisk, sbi);
 
        exfat_chain_set(&clu, ei->start_clu, num_clusters_phys, ei->flags);
 
@@ -228,12 +227,13 @@ void exfat_truncate(struct inode *inode, loff_t size)
 {
        struct super_block *sb = inode->i_sb;
        struct exfat_sb_info *sbi = EXFAT_SB(sb);
+       struct exfat_inode_info *ei = EXFAT_I(inode);
        unsigned int blocksize = i_blocksize(inode);
        loff_t aligned_size;
        int err;
 
        mutex_lock(&sbi->s_lock);
-       if (EXFAT_I(inode)->start_clu == 0) {
+       if (ei->start_clu == 0) {
                /*
                 * Empty start_clu != ~0 (not allocated)
                 */
@@ -251,8 +251,8 @@ void exfat_truncate(struct inode *inode, loff_t size)
        else
                mark_inode_dirty(inode);
 
-       inode->i_blocks = ((i_size_read(inode) + (sbi->cluster_size - 1)) &
-                       ~(sbi->cluster_size - 1)) >> inode->i_blkbits;
+       inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >>
+                               inode->i_blkbits;
 write_size:
        aligned_size = i_size_read(inode);
        if (aligned_size & (blocksize - 1)) {
@@ -260,11 +260,11 @@ write_size:
                aligned_size++;
        }
 
-       if (EXFAT_I(inode)->i_size_ondisk > i_size_read(inode))
-               EXFAT_I(inode)->i_size_ondisk = aligned_size;
+       if (ei->i_size_ondisk > i_size_read(inode))
+               ei->i_size_ondisk = aligned_size;
 
-       if (EXFAT_I(inode)->i_size_aligned > i_size_read(inode))
-               EXFAT_I(inode)->i_size_aligned = aligned_size;
+       if (ei->i_size_aligned > i_size_read(inode))
+               ei->i_size_aligned = aligned_size;
        mutex_unlock(&sbi->s_lock);
 }