lkml.org 
[lkml]   [2008]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 51/52] ext4: Don't allow nonextenst mount option for large filesystem
    Date
    From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

    The block mapped inode format can address only blocks within 2**32. This
    causes a number of issues, the biggest of which is that the block
    allocator needs to be taught that certain inodes can not utilize block
    numbers > 2**32. So until this is fixed, it is simplest to fail
    mounting of file systems with more than 2**32 blocks if the -o noextents
    option is given.

    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Mingming Cao <cmm@us.ibm.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    ---
    fs/ext4/super.c | 15 +++++++++++++++
    1 files changed, 15 insertions(+), 0 deletions(-)

    diff --git a/fs/ext4/super.c b/fs/ext4/super.c
    index 4e104dd..2bf9cdd 100644
    --- a/fs/ext4/super.c
    +++ b/fs/ext4/super.c
    @@ -1004,6 +1004,7 @@ static int parse_options (char *options, struct super_block *sb,
    int qtype, qfmt;
    char *qname;
    #endif
    + ext4_fsblk_t last_block;

    if (!options)
    return 1;
    @@ -1326,6 +1327,20 @@ set_qf_format:
    set_opt (sbi->s_mount_opt, EXTENTS);
    break;
    case Opt_noextents:
    + /*
    + * When e2fsprogs support resizing an already existing
    + * ext3 file system to greater than 2**32 we need to
    + * add support to block allocator to handle growing
    + * already existing block mapped inode so that blocks
    + * allocated for them fall within 2**32
    + */
    + last_block = ext4_blocks_count(sbi->s_es) - 1;
    + if (last_block > 0xffffffffULL) {
    + printk(KERN_ERR "EXT4-fs: Filesystem too "
    + "large to mount with "
    + "-o noextents options\n");
    + return 0;
    + }
    clear_opt (sbi->s_mount_opt, EXTENTS);
    break;
    case Opt_i_version:
    --
    1.5.6.rc3.1.g36b7.dirty


    \
     
     \ /
      Last update: 2008-07-05 19:47    [W:4.027 / U:0.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site