diff -urNp x-ref/fs/intermezzo/super.c x/fs/intermezzo/super.c --- x-ref/fs/intermezzo/super.c Fri Aug 9 14:52:20 2002 +++ x/fs/intermezzo/super.c Mon Sep 30 01:03:38 2002 @@ -318,6 +318,7 @@ struct super_block * presto_read_super(s EXIT; goto out_err; } + sb_limit_maxbytes(presto_sb); cache->cache_sb = mysb; diff -urNp x-ref/fs/super.c x/fs/super.c --- x-ref/fs/super.c Mon Sep 30 01:03:30 2002 +++ x/fs/super.c Mon Sep 30 01:03:38 2002 @@ -648,6 +648,12 @@ retry: return s; } +void sb_limit_maxbytes(struct super_block * s) +{ + if (s->s_maxbytes > MAX_LFS_FILESIZE) + s->s_maxbytes = MAX_LFS_FILESIZE; +} + static struct super_block *get_sb_bdev(struct file_system_type *fs_type, int flags, char *dev_name, void * data) { @@ -725,6 +731,7 @@ restart: insert_super(s, fs_type); if (!fs_type->read_super(s, data, flags & MS_VERBOSE ? 1 : 0)) goto Einval; + sb_limit_maxbytes(s); s->s_flags |= MS_ACTIVE; path_release(&nd); return s; @@ -755,6 +762,7 @@ static struct super_block *get_sb_nodev( remove_super(s); return ERR_PTR(-EINVAL); } + sb_limit_maxbytes(s); s->s_flags |= MS_ACTIVE; return s; } @@ -778,6 +786,7 @@ static struct super_block *get_sb_single remove_super(s); return ERR_PTR(-EINVAL); } + sb_limit_maxbytes(s); s->s_flags |= MS_ACTIVE; } do_remount_sb(s, flags, data); diff -urNp x-ref/include/linux/fs.h x/include/linux/fs.h --- x-ref/include/linux/fs.h Mon Sep 30 01:03:30 2002 +++ x/include/linux/fs.h Mon Sep 30 01:03:38 2002 @@ -562,6 +562,8 @@ extern int init_private_file(struct file #define MAX_LFS_FILESIZE 0x7fffffffffffffff #endif +extern void sb_limit_maxbytes(struct super_block * s); + #define FL_POSIX 1 #define FL_FLOCK 2 #define FL_BROKEN 4 /* broken flock() emulation */ diff -urNp x-ref/kernel/ksyms.c x/kernel/ksyms.c --- x-ref/kernel/ksyms.c Mon Sep 30 01:03:30 2002 +++ x/kernel/ksyms.c Mon Sep 30 01:03:45 2002 @@ -533,6 +533,7 @@ EXPORT_SYMBOL(is_bad_inode); EXPORT_SYMBOL(event); EXPORT_SYMBOL(brw_page); EXPORT_SYMBOL(__inode_dir_notify); +EXPORT_SYMBOL(sb_limit_maxbytes); #ifdef CONFIG_UID16 EXPORT_SYMBOL(overflowuid);