Skip to contentSkip to conversation

Patch "fs/ufs: Set UFS default maximum bytes per file" has been added to the 4.11-stable tree

PATCH [email protected] 1 participant 1 message Jun 5, 2017 Stable branch

lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

fs/ufs: Set UFS default maximum bytes per file

to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
fs-ufs-set-ufs-default-maximum-bytes-per-file.patch
and it can be found in the queue-4.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 239e250e4acbc0104d514307029c0839e834a51a Mon Sep 17 00:00:00 2001

From: Richard Narron <[email protected]>
Date: Sun, 4 Jun 2017 16:23:18 -0700
Subject: fs/ufs: Set UFS default maximum bytes per file

From: Richard Narron <[email protected]>

commit 239e250e4acbc0104d514307029c0839e834a51a upstream.

This fixes a problem with reading files larger than 2GB from a UFS-2 file system:

    https://bugzilla.kernel.org/show_bug.cgi?id=195721

The incorrect UFS s_maxsize limit became a problem as of commit c2a9737f45e2 ("vfs,mm: fix a dead loop in truncate_inode_pages_range()") which started using s_maxbytes to avoid a page index overflow in do_generic_file_read().

That caused files to be truncated on UFS-2 file systems because the default maximum file size is 2GB (MAX_NON_LFS) and UFS didn't update it.

Here I simply increase the default to a common value used by other file systems.

---
 fs/ufs/super.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
fs/ufs/super.c +2 -3
@@ -812,9 +812,8 @@ static int ufs_fill_super(struct super_b
 	uspi->s_dirblksize = UFS_SECTOR_SIZE;
 	super_block_offset=UFS_SBLOCK;
 
-	/* Keep 2Gig file limit. Some UFS variants need to override 
-	   this but as I don't know which I'll let those in the know loosen
-	   the rules */
+	sb->s_maxbytes = MAX_LFS_FILESIZE;
+
 	switch (sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) {
 	case UFS_MOUNT_UFSTYPE_44BSD:
 		UFSD("ufstype=44bsd\n");

Patches currently in stable-queue which might be from [email protected] are

queue-4.11/fs-ufs-set-ufs-default-maximum-bytes-per-file.patch