aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2021-11-01 11:45:04 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2021-11-01 11:45:04 -0700
commit9c6e8d52a7299b1596334ca49171f2efedc15ef6 (patch)
treee808a6dd42ba7a275dce05f2756f6add0de7885c
parent67a135b80eb75b62d92a809b0246e70524f69b89 (diff)
parent0c336d6e33f4bedc443404c89f43c91c8bd9ee11 (diff)
downloadlinux-9c6e8d52a7299b1596334ca49171f2efedc15ef6.tar.gz
Merge tag 'exfat-for-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat
Pull exfat fix from Namjae Jeon: "Fix ->i_blocks truncation issue caused by wrong 32bit mask" * tag 'exfat-for-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat: exfat: fix incorrect loading of i_blocks for large files
-rw-r--r--fs/exfat/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c
index ca37d43443612c..1c7aa1ea4724cf 100644
--- a/fs/exfat/inode.c
+++ b/fs/exfat/inode.c
@@ -604,7 +604,7 @@ static int exfat_fill_inode(struct inode *inode, struct exfat_dir_entry *info)
exfat_save_attr(inode, info->attr);
inode->i_blocks = ((i_size_read(inode) + (sbi->cluster_size - 1)) &
- ~(sbi->cluster_size - 1)) >> inode->i_blkbits;
+ ~((loff_t)sbi->cluster_size - 1)) >> inode->i_blkbits;
inode->i_mtime = info->mtime;
inode->i_ctime = info->mtime;
ei->i_crtime = info->crtime;