• P
    OCFS2: Allow huge (> 16 TiB) volumes to mount · 3bdb8efd
    Patrick J. LoPresti 提交于
    The OCFS2 developers have already done all of the hard work to allow
    volumes larger than 16 TiB.  But there is still a "sanity check" in
    fs/ocfs2/super.c that prevents the mounting of such volumes, even when
    the cluster size and journal options would allow it.
    
    This patch replaces that sanity check with a more sophisticated one to
    mount a huge volume provided that (a) it is addressable by the raw
    word/address size of the system (borrowing a test from ext4); (b) the
    volume is using JBD2; and (c) the JBD2_FEATURE_INCOMPAT_64BIT flag is
    set on the journal.
    
    I factored out the sanity check into its own function.  I also moved it
    from ocfs2_initialize_super() down to ocfs2_check_volume(); any earlier,
    and the journal will not have been initialized yet.
    
    This patch is one of a pair, and it depends on the other ("JBD2: Allow
    feature checks before journal recovery").
    
    I have tested this patch on small volumes, huge volumes, and huge
    volumes without 64-bit block support in the journal.  All of them appear
    to work or to fail gracefully, as appropriate.
    Signed-off-by: NPatrick LoPresti <lopresti@gmail.com>
    Signed-off-by: NJoel Becker <joel.becker@oracle.com>
    3bdb8efd
super.c 67.3 KB