| From 4af2f2051cff6388179fc9fc01a7554bf67e8863 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 21 Nov 2019 15:37:26 +0000 |
| Subject: afs: Fix large file support |
| |
| From: Marc Dionne <marc.dionne@auristor.com> |
| |
| [ Upstream commit b485275f1aca8a9da37fd35e4fad673935e827da ] |
| |
| By default s_maxbytes is set to MAX_NON_LFS, which limits the usable |
| file size to 2GB, enforced by the vfs. |
| |
| Commit b9b1f8d5930a ("AFS: write support fixes") added support for the |
| 64-bit fetch and store server operations, but did not change this value. |
| As a result, attempts to write past the 2G mark result in EFBIG errors: |
| |
| $ dd if=/dev/zero of=foo bs=1M count=1 seek=2048 |
| dd: error writing 'foo': File too large |
| |
| Set s_maxbytes to MAX_LFS_FILESIZE. |
| |
| Fixes: b9b1f8d5930a ("AFS: write support fixes") |
| Signed-off-by: Marc Dionne <marc.dionne@auristor.com> |
| Signed-off-by: David Howells <dhowells@redhat.com> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/afs/super.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/fs/afs/super.c b/fs/afs/super.c |
| index fbdb022b75a27..65389394e2028 100644 |
| --- a/fs/afs/super.c |
| +++ b/fs/afs/super.c |
| @@ -317,6 +317,7 @@ static int afs_fill_super(struct super_block *sb, |
| /* fill in the superblock */ |
| sb->s_blocksize = PAGE_SIZE; |
| sb->s_blocksize_bits = PAGE_SHIFT; |
| + sb->s_maxbytes = MAX_LFS_FILESIZE; |
| sb->s_magic = AFS_FS_MAGIC; |
| sb->s_op = &afs_super_ops; |
| sb->s_bdi = &as->volume->bdi; |
| -- |
| 2.20.1 |
| |