Skip to contentSkip to conversation

Increase file size limit on FreeBSD UFS flavours

PATCH In review Vladimir 'φ-coder/phcoder' Serbinenko 2 participants 3 messages May 13, 2012 – May 18, 2012 VFS

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Increase file size limit on FreeBSD UFS flavours

Increase the file size limit on FreeBSD UFS flavours.

fs/ufs/super.c +2 -0
index ac8e279..7e80a68 100644
@@ -768,6 +768,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent)
 		uspi->s_fshift = 9;
 		uspi->s_sbsize = super_block_size = 1536;
 		uspi->s_sbbase = 0;
+		sb->s_maxbytes = MAX_LFS_FILESIZE;
 		flags |= UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		break;
 	case UFS_MOUNT_UFSTYPE_UFS2:
@@ -778,6 +779,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent)
 		uspi->s_fshift = 9;
 		uspi->s_sbsize = super_block_size = 1536;
 		uspi->s_sbbase =  0;
+		sb->s_maxbytes = MAX_LFS_FILESIZE;
 		flags |= UFS_TYPE_UFS2 | UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		break;
 		
#1 lore raw
Quoted 17 lines · On Sun, 13 May 2012 15:50:40 +0200 Vladimir '__-coder/phcoder' Serbinenko…

Increase the file size limit on FreeBSD UFS flavours.

fs/ufs/super.c +1 -0
index ac8e279..7e80a68 100644
@@ -768,6 +768,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent)
 		uspi->s_fshift = 9;
 		uspi->s_sbsize = super_block_size = 1536;
 		uspi->s_sbbase = 0;
+		sb->s_maxbytes = MAX_LFS_FILESIZE;
 		flags |= UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		break;
 	case UFS_MOUNT_UFSTYPE_UFS2:

fs/ufs/super.c static int ufs_fill_super(struct super_block *sb, void *data, int silent) · line 785

Quoted 7 lines
fs/ufs/super.c +1 -0
@@ -778,6 +779,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent)
 		uspi->s_fshift = 9;
 		uspi->s_sbsize = super_block_size = 1536;
 		uspi->s_sbbase =  0;
+		sb->s_maxbytes = MAX_LFS_FILESIZE;
 		flags |= UFS_TYPE_UFS2 | UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		break;
 

But MAX_NON_LFS exists for a reason. Before this change, the Linux UFS implementation had never had to deal with >4G files (I assume).

Are you telling us that the fs has been thoroughly audited and tested with large files and that it all worked OK with no other changes?

#2 lore raw
Quoted 31 lines · Andrew Morton
Quoted 17 lines · On Sun, 13 May 2012 15:50:40 +0200 Vladimir '__-coder/phcoder' Serbinenko…

Increase the file size limit on FreeBSD UFS flavours.

fs/ufs/super.c +1 -0
index ac8e279..7e80a68 100644
@@ -768,6 +768,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent)
 		uspi->s_fshift = 9;
 		uspi->s_sbsize = super_block_size = 1536;
 		uspi->s_sbbase = 0;
+		sb->s_maxbytes = MAX_LFS_FILESIZE;
 		flags |= UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		break;
 	case UFS_MOUNT_UFSTYPE_UFS2:

fs/ufs/super.c static int ufs_fill_super(struct super_block *sb, void *data, int silent) · line 785

Quoted 7 lines
fs/ufs/super.c +1 -0
@@ -778,6 +779,7 @@ static int ufs_fill_super(struct super_block *sb, void *data, int silent)
 		uspi->s_fshift = 9;
 		uspi->s_sbsize = super_block_size = 1536;
 		uspi->s_sbbase =  0;
+		sb->s_maxbytes = MAX_LFS_FILESIZE;
 		flags |= UFS_TYPE_UFS2 | UFS_DE_44BSD | UFS_UID_44BSD | UFS_ST_44BSD | UFS_CG_44BSD;
 		break;
 

But MAX_NON_LFS exists for a reason. Before this change, the Linux UFS implementation had never had to deal with >4G files (I assume).

Quoted 3 lines

Are you telling us that the fs has been thoroughly audited and tested with large files and that it all worked OK with no other changes?

The comment indicated that this was simply because the author wasn't sure as to which UFS flavours actually supported big files. I've tested it only by creating big file, unmounting the filesystem and then comparing the read against another UFS implementation (the one in GRUB) and obtaining perfect match. I haven't done any thorough audit.

Signature · 2 lines
Regards
Vladimir 'φ-coder/phcoder' Serbinenko