On Mon, Jul 12, 2010 at 06:08:51PM -0700, Patrick J. LoPresti wrote: > On Mon, Jul 12, 2010 at 5:21 PM, Andreas Dilger <adilger@xxxxxxxxx> wrote: > > On 2010-07-11, at 11:04, Patrick J. LoPresti wrote: > > > > >> + /* Absolute addressability check (borrowed from ext4/super.c) */ > >> + if ((max_block > > >> + (sector_t)(~0LL) >> (osb->sb->s_blocksize_bits - 9)) || > >> + (max_block > (pgoff_t)(~0LL) >> (PAGE_CACHE_SHIFT - > >> + osb->sb->s_blocksize_bits))) { > >> + mlog(ML_ERROR, "Volume too large " > >> + "to mount safely on this system"); > >> + status = -EFBIG; > >> + goto out; > >> + } > > > > This hunk of code is actually in several filesystems. It wouldn't be a bad idea to make it a library function that can be called by the filesystem to check the kernel page cache and block layer can handle these large filesystems. > > True, but some of them do it differently (e.g. see the #if switch in > xfs_sb_validate_fsb_count). Tracking down all variants and changing > them is a much larger task than my simple patch. The XFS code is different to the above because there is still a 16TB size limit on 32 bit systemsi (i.e. page cache address limits). IOWs, you can't just remove the above 16TB check unless you (i.e. OCFS2) handle >16TB block devices on 32 bit systems correctly... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html