aboutsummaryrefslogtreecommitdiffstats
path: root/fs/minix/itree_v2.c
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2020-08-11 18:35:33 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2020-08-12 10:58:00 -0700
commit32ac86efff91a3e4ef8c3d1cadd4559e23c8e73a (patch)
tree423bd6c227851776d467bf60624581a19ea30522 /fs/minix/itree_v2.c
parentfs/minix: reject too-large maximum file size (diff)
downloadlinux-dev-32ac86efff91a3e4ef8c3d1cadd4559e23c8e73a.tar.xz
linux-dev-32ac86efff91a3e4ef8c3d1cadd4559e23c8e73a.zip
fs/minix: set s_maxbytes correctly
The minix filesystem leaves super_block::s_maxbytes at MAX_NON_LFS rather than setting it to the actual filesystem-specific limit. This is broken because it means userspace doesn't see the standard behavior like getting EFBIG and SIGXFSZ when exceeding the maximum file size. Fix this by setting s_maxbytes correctly. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Qiujun Huang <anenbupt@gmail.com> Link: http://lkml.kernel.org/r/20200628060846.682158-5-ebiggers@kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/minix/itree_v2.c')
-rw-r--r--fs/minix/itree_v2.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/minix/itree_v2.c b/fs/minix/itree_v2.c
index f7fc7ecccccc..ee8af2f9e282 100644
--- a/fs/minix/itree_v2.c
+++ b/fs/minix/itree_v2.c
@@ -32,8 +32,7 @@ static int block_to_path(struct inode * inode, long block, int offsets[DEPTH])
if (block < 0) {
printk("MINIX-fs: block_to_path: block %ld < 0 on dev %pg\n",
block, sb->s_bdev);
- } else if ((u64)block * (u64)sb->s_blocksize >=
- minix_sb(sb)->s_max_size) {
+ } else if ((u64)block * (u64)sb->s_blocksize >= sb->s_maxbytes) {
if (printk_ratelimit())
printk("MINIX-fs: block_to_path: "
"block %ld too big on dev %pg\n",