Subject: [PATCH] Increase file size limit on FreeBSD UFS flavours

Increase the file size limit on FreeBSD UFS flavours.

Signed-off-by: Vladimir Serbinenko <[email protected]>

diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index ac8e279..7e80a68 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -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;



Attachments:
signature.asc (294.00 B)
OpenPGP digital signature

2012-05-17 23:10:55

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] Increase file size limit on FreeBSD UFS flavours

On Sun, 13 May 2012 15:50:40 +0200
Vladimir '__-coder/phcoder' Serbinenko <[email protected]> wrote:

> Increase the file size limit on FreeBSD UFS flavours.
>
> Signed-off-by: Vladimir Serbinenko <[email protected]>
>
> diff --git a/fs/ufs/super.c b/fs/ufs/super.c
> index ac8e279..7e80a68 100644
> --- a/fs/ufs/super.c
> +++ b/fs/ufs/super.c
> @@ -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;
>

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?

Subject: Re: [PATCH] Increase file size limit on FreeBSD UFS flavours

On 18.05.2012 01:10, Andrew Morton wrote:

> On Sun, 13 May 2012 15:50:40 +0200
> Vladimir '__-coder/phcoder' Serbinenko <[email protected]> wrote:
>
>> Increase the file size limit on FreeBSD UFS flavours.
>>
>> Signed-off-by: Vladimir Serbinenko <[email protected]>
>>
>> diff --git a/fs/ufs/super.c b/fs/ufs/super.c
>> index ac8e279..7e80a68 100644
>> --- a/fs/ufs/super.c
>> +++ b/fs/ufs/super.c
>> @@ -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;
>>
>
> 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?
>

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.


--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


Attachments:
signature.asc (294.00 B)
OpenPGP digital signature