diff options
author | Patrick J. LoPresti <lopresti@gmail.com> | 2010-07-22 15:05:57 -0700 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2010-09-10 08:42:10 -0700 |
commit | 3bdb8efd94a73bb137e3315cd831cbc874052b4b (patch) | |
tree | ab9d273ca7a066fbb36884a703016c0eaaabe2c7 /fs/libfs.c | |
parent | 1113e1b504f6e8d4364c0b73c9097828067d4617 (diff) | |
download | op-kernel-dev-3bdb8efd94a73bb137e3315cd831cbc874052b4b.zip op-kernel-dev-3bdb8efd94a73bb137e3315cd831cbc874052b4b.tar.gz |
OCFS2: Allow huge (> 16 TiB) volumes to mount
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: Patrick LoPresti <lopresti@gmail.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/libfs.c')
0 files changed, 0 insertions, 0 deletions