lkml.org 
[lkml]   [2000]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: LFS (2+GB) problems.
    I am currently using the version of e2fsck that comes with redhat 6.1
    e2fsck 1.15 is what it says. For ext2 fs v 0.5b.

    Does this help?

    On Fri, Feb 04, 2000 at 09:52:22AM -0700, Andreas Dilger wrote:
    > You write:
    > > Just resently I have started messing with the lfs facilities now
    > > in place in the devel kernels and I have run into a few problems.
    > >
    > > Here are my problems:
    > >
    > > o I can create files larger than 4GB BUT I cannot remove them cleanly.
    > > o On a reboot e2fsck truncates any file larger than 4GB to 4GB.
    > >
    > > Also... the first time I ran e2fsck it complained to me about having a large
    > > file on the FS... It said I needed to turn on some flag in the superblock
    > > (I cant remember the name) to enable LFS support... How do I turn it on
    > > if e2fsck didnt already? What is the flag named? Is there any real docs
    > > on how to set up LFS in linux? I cant seem to find any.
    >
    > You didn't mention if you installed a new e2fsprogs. The latest version
    > is 1.18 I believe. However, looking through the ext2 code that I have
    > (2.3.34 only), it does not set the EXT2_FEATURE_RO_COMPAT_LARGE_FILE flag
    > in the superblock as far as I can see, so e2fsck probably has no chance to
    > get it right anyways. If it isn't already in the recent kernel, you need
    > something like the following in fs/ext2/inode.c:ext2_update_inode():
    >
    > if (S_ISDIR(inode->i_mode))
    > raw_inode->i_dir_acl = cpu_to_le32(inode->u.ext2_i.i_dir_acl);
    > | else {
    > raw_inode->i_size_high = cpu_to_le32(inode->i_size >> 32);
    > + if (raw_inode->i_size_high)
    > + inode->i_sb->u.ext2_sb.s_feature_ro_compat |=
    > + EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
    > + }
    >
    > I'm not 100% sure this is the right way to do it (not even sure that the
    > syntax is correct), but at least it's a start... It seems likely that
    > you may also need to have (in addition to or instead of the above):
    >
    > + inode->i_sb->u.ext2_sb.s_es->s_feature_ro_compat |=
    > + EXT2_FEATURE_RO_COMPAT_LARGE_FILE;
    > + mark_buffer_dirty(inode->i_sb->u.ext2_sb.s_sbh, 1);
    > + inode->i_sb->s_dirt = 1;
    >
    > The latter will change the superblock on the disk - note the s_es in there,
    > and it should be written out when it is marked dirty. It may also be
    > nice to check if the flag is already set via EXT2_HAS_RO_COMPAT_FEATURE()
    > so we don't write out the superblock for each update of a large file...
    >
    > Cheers, Andreas
    > --
    > Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto,
    > \ would they cancel out, leaving him still hungry?"
    > http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert
    >
    > -
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.rutgers.edu
    > Please read the FAQ at http://www.tux.org/lkml/

    --

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:56    [W:0.031 / U:116.052 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site