[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170830151332.2ikr5dfox3aeebyd@thunk.org>
Date: Wed, 30 Aug 2017 11:13:32 -0400
From: Theodore Ts'o <tytso@....edu>
To: Andreas Dilger <adilger@...ger.ca>
Cc: linux-ext4@...r.kernel.org
Subject: Re: e2fsck: set dir_nlink feature if large dir exists
On Wed, Aug 30, 2017 at 01:43:30AM -0600, Andreas Dilger wrote:
> > The f_large_dir test is now failing after I apply this patch:
> >
> > debugfs 1.43.6 (29-Aug-2017)
> > ./test_one: 38: /usr/projects/e2fsprogs/e2fsprogs/tests/f_large_dir/script: arithmetic expression: division by zero: "i / ELAPSED"
> > f_large_dir: optimize 3 level htree directories: failed
>
> You must have a faster test system than I do...
I'm using a ramdisk for /tmp. I suspect that's what is making all the
difference. Otherwise it's just a normal Lenovo T470 laptop....
> On a related note, I was trying to implement the optimization for
> more efficient ext2fs_link() insertion, but this has proven to be
> much more complex than I expected. I was thinking I would just
> call the link_proc() function directly to handle insertion of the
> new name, using block number of the previous caller. However, this
> function depends on the directory leaf buffers having been read
> from disk, and being passed a dirent pointer to the free space after
> being called through a series of callback indirections.
I think it's more trouble than it's worth to preseve the existing
link_proc() function. I'd recommend out to be just what is necessary
to do the directory entry insert, and make that a helper function
which is called by link_proc() and the shortcut handling code in
ext2fs_link().
Cheers,
- Ted
Powered by blists - more mailing lists