<feed xmlns='http://www.w3.org/2005/Atom'>
<title>e2fsprogs/lib, branch master</title>
<subtitle>[no description]</subtitle>
<id>https://git.osdyson.ru/e2fsprogs/atom?h=master</id>
<link rel='self' href='https://git.osdyson.ru/e2fsprogs/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/'/>
<updated>2012-01-17T20:38:31Z</updated>
<entry>
<title>libext2fs: display partial path if fs corrupted in ext2fs_get_pathname()</title>
<updated>2012-01-17T20:38:31Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2012-01-17T20:38:31Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=1f572d1f88628c1e0dc88cb8cfaf2bb480b81e4f'/>
<id>urn:sha1:1f572d1f88628c1e0dc88cb8cfaf2bb480b81e4f</id>
<content type='text'>
The function ext2fs_get_pathname() used to return EXT2_ET_NO_DIRECTORY
if one of the directories in an inode's pathname is not a directory.
This is not very useful in an emergency, when the file system is
corrupted.  This commit will cause ext2fs_get_pathname() to return a
partial pathname, which should help system administrators trying to
use debugfs to investigate a corrupted file system.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: change getpagesize to sysconf</title>
<updated>2012-01-10T02:19:48Z</updated>
<author>
<name>Mike Frysinger</name>
<email>vapier@gentoo.org</email>
</author>
<published>2012-01-10T02:19:48Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=24d364fc43601ea3d2e01cc506633302fa091d8f'/>
<id>urn:sha1:24d364fc43601ea3d2e01cc506633302fa091d8f</id>
<content type='text'>
Newer versions of glibc no longer export the getpagesize() prototype when
using recent versions of POSIX (_XOPEN_SOURCE).  So building tdb.c gives
use implicit function declaration warnings.  Fix the issue by using the
portable sysconf() function which returns the same answer.

Signed-off-by: Mike Frysinger &lt;vapier@gentoo.org&gt;
Signed-off-by: Theodore Ts'o &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: add bitmap statistics</title>
<updated>2011-12-18T06:12:44Z</updated>
<author>
<name>Lukas Czerner</name>
<email>lczerner@redhat.com</email>
</author>
<published>2011-12-16T22:31:07Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=9288e3be665bb8d5657d7f710687a50fad859acf'/>
<id>urn:sha1:9288e3be665bb8d5657d7f710687a50fad859acf</id>
<content type='text'>
This feature is especially useful for better understanding how e2fsprogs
tools (mainly e2fsck) treats bitmaps and what bitmap backend can be most
suitable for particular bitmap. Backend itself (if implemented) can
provide statistics of its own as well.

[ Changed to provide basic statistics when enabled with the
  E2FSPROGS_BITMAPS_STATS environment variable -- tytso]

Signed-off-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: adjust the description when copying a bitmap</title>
<updated>2011-12-18T06:12:44Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2011-12-17T19:01:15Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=4a61d17c7c4c09ce3bb5f77bdb9b90eb9f10e8c3'/>
<id>urn:sha1:4a61d17c7c4c09ce3bb5f77bdb9b90eb9f10e8c3</id>
<content type='text'>
Label the copy of a bitmap as "copy of ..." so that the bitmap's
description is more descriptive.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>e2fsck: use different bitmap types as appropriate</title>
<updated>2011-12-18T06:12:44Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2011-12-16T19:55:50Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=830b44f4385eb255d08fe0c8b200f8d8e3e97a8d'/>
<id>urn:sha1:830b44f4385eb255d08fe0c8b200f8d8e3e97a8d</id>
<content type='text'>
Now that we have multiple backend implementations of the bitmap code,
this commit teaches e2fsck to use either the most appropriate backend
for each use case.

Since we don't know for sure if we will get it all right, the default
choices can be overridden via e2fsck.conf.  The various definitions
are shown here, with the current defaults (which may change as we add
more bitmap implementations and as learn what works better).

; EXT2FS_BAMP64_BITARRAY is 1
; EXT2FS_BMAP64_RBTREE is 2
; EXT2FS_BMAP64_AUTODIR is 3
[bitmaps]
	inode_used_map = 2	; pass1
	inode_dir_map = 3	; pass1
	inode_reg_map = 2	; pass1
	block_found_map = 2	; pass1
	inode_bad_map = 2	; pass1
	inode_imagic_map = 2	; pass1
	block_dup_map = 2	; pass1
	block_ea_map = 2	; pass1
	inode_link_info = 2	; pass1
	inode_dup_map = 2	; pass1b
	inode_done_map = 3	; pass3
	inode_loop_detect = 3	; pass3
	fs_bitmaps = 2

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: use the rbtree bitmap by default when initializing a file system</title>
<updated>2011-12-18T06:12:44Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2011-12-16T16:26:00Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=0ff7bf30074d8a449ba389e9f088d356447105de'/>
<id>urn:sha1:0ff7bf30074d8a449ba389e9f088d356447105de</id>
<content type='text'>
This change causes the max resident memory of mke2fs, as reported by
/usr/bin/time, to drop from 9296k to 5328k when formatting a 25
gig volume.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: add pseudo bitmap backend type EXT2FS_BMAP64_AUTODIR</title>
<updated>2011-12-18T06:12:43Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2011-12-18T05:31:27Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=d182831a15dfa4d36979be10fdfd4ec06bdd65b9'/>
<id>urn:sha1:d182831a15dfa4d36979be10fdfd4ec06bdd65b9</id>
<content type='text'>
This backend type will automatically switch between the bitarray and
the rbtree backend based on the number of directories in the file
system.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: add a bitmap implementation using rbtree's</title>
<updated>2011-12-18T06:12:40Z</updated>
<author>
<name>Lukas Czerner</name>
<email>lczerner@redhat.com</email>
</author>
<published>2011-12-18T05:29:33Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=c1359d91958cadfbc0987921ee5b4db717852e90'/>
<id>urn:sha1:c1359d91958cadfbc0987921ee5b4db717852e90</id>
<content type='text'>
For a long time we had a bitarray backend for storing filesystem
metadata bitmaps, however today this approach might hit its limits with
todays huge data storage devices, because of its memory utilization.

Bitarrays stores bitmaps as ..well, as bitmaps. But this is in most
cases highly unefficient because we need to allocate memory even for the
big parts of bitmaps we will never use, resulting in high memory
utilization especially for huge filesystem, when bitmaps might occupy
gigabytes of space.

This commit adds another backend to store bitmaps. It is based on
rbtrees and it stores just used extents of bitmaps. It means that it can
be more memory efficient in most cases.

I have done some limited benchmarking and it shows that rbtree backend
consumes approx 65% less memory that bitarray on 312GB filesystem aged
with Impression (default config). This number may grow significantly
with the filesystem size, but also it may be a lot lower (even negative)
if the inodes are very fragmented (need more benchmarking).

This commit itself does not enable the use of rbtree backend.

[ Simplified the code by avoiding unneeded memory allocation and
  deallocation of del_ext.  In addition, fixed a bug discovered by the
  tst_bitmaps tests: rb_unamrk_bmap() must return true if the bit was
  previously set in bitmap, and zero otherwise -- tytso ]

Signed-off-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: add rbtree library</title>
<updated>2011-12-18T06:00:44Z</updated>
<author>
<name>Lukas Czerner</name>
<email>lczerner@redhat.com</email>
</author>
<published>2011-12-16T01:56:27Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=5db745a2836fd480d6be1b7cf388b0aad6b786ad'/>
<id>urn:sha1:5db745a2836fd480d6be1b7cf388b0aad6b786ad</id>
<content type='text'>
This commit adds rbtree library into e2fsprogs so it can be used for
various internal data structures. The rbtree implementation is ripped of
kernel rbtree implementation with small changes needed for it to work
outside kernel.

[ I prefixed the exported symbols and interface with ext2fs_ to keep
  avoid pulluting the namespace exported by the libext2fs shared
  library.  -- tytso ]

Signed-off-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>libext2fs: add tests for the bitmap functions</title>
<updated>2011-12-18T06:00:38Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2011-12-18T04:53:47Z</published>
<link rel='alternate' type='text/html' href='https://git.osdyson.ru/e2fsprogs/commit/?id=b8ad88b3e746b0c37dfb61e0fe7ad7a7636f9537'/>
<id>urn:sha1:b8ad88b3e746b0c37dfb61e0fe7ad7a7636f9537</id>
<content type='text'>
These tests allow us to be sure that the new bitmap backends are
correctly implemented.

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
</feed>
