<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/ext3_fs_sb.h, branch v2.6.16.45</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v2.6.16.45</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v2.6.16.45'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2004-11-11T05:41:26Z</updated>
<entry>
<title>[PATCH] "Bad" naming of structures and functions in ext3 reservation code</title>
<updated>2004-11-11T05:41:26Z</updated>
<author>
<name>Oleg Drokin</name>
<email>green@linuxhacker.ru</email>
</author>
<published>2004-11-11T05:41:26Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fc0c58f5fc1f240903dea998d8239203f95e9b2d'/>
<id>urn:sha1:fc0c58f5fc1f240903dea998d8239203f95e9b2d</id>
<content type='text'>
The patch below renames struct reserve_window_node* and rsv_window_add()
function to struct ext3_reserve_window_node* and ext3_rsv_window_add().

This eases the task of having several ext3-derived filesystem drivers (with
different capabilities) in kernel.


Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] ext3: online resizing</title>
<updated>2004-10-29T06:24:01Z</updated>
<author>
<name>Stephen C. Tweedie</name>
<email>sct@redhat.com</email>
</author>
<published>2004-10-29T06:24:01Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e417c49a1f3a02faaacc3a4c35e1a273a67d5560'/>
<id>urn:sha1:e417c49a1f3a02faaacc3a4c35e1a273a67d5560</id>
<content type='text'>
The patch below adds online resize capability to ext3 based on Andreas
patch for 2.4 and fixed up by Stephen.

The patch also removes s_debts:

s_debts is currently not used by ext3 (it is created, destroyed and checked
but never set).  Remove it for now.

Resurrecting this will require adding it back in changed form.  In existing
form it's already unsafe wrt.  byte-tearing as it performs unlocked byte
increment/decrement on words which may be being accessed simultaneously on
other CPUs.  It is also the only in-memory dynamic table which needs to be
extended by online-resize, so locking it will require care.


Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] ext3 block reservations</title>
<updated>2004-10-29T06:23:35Z</updated>
<author>
<name>Mingming Cao</name>
<email>cmm@us.ibm.com</email>
</author>
<published>2004-10-29T06:23:35Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=382c958e6addaaccfd1b046b7ba00ee8e2cf92f9'/>
<id>urn:sha1:382c958e6addaaccfd1b046b7ba00ee8e2cf92f9</id>
<content type='text'>
rbtree implementation and other changes From: Stephen Tweedie &lt;sct@redhat.com&gt;
contributions From: Badari Pulavarty &lt;pbadari@us.ibm.com&gt; and probably me.

This is the ext3 block reservation patch.  It improves the layout of ext3
files by establishing, for each inode, reserved areas of the disk in which
only that file can allocate blocks.  Those reserved areas are managed in an
rbtree, via the in-core inode.

It's a bit like ext2 preallocation only stronger in that it can span
already-allocated blocks, including the per-blockgroup inode tables and
bitmaps.

The patch fixes ext3's worst performance problem: disastrous layout when
multiple files are being concurrently grown.

It increases the size of the inode by rather a lot.  A todo item is to
dynamically allocate the `struct reserve_window_node', so we don't need to
carry this storage for inodes which aren't opened for writing.

The feature is enabled by mounting with the "reservation" mount option. 
Reservations default to "off".

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] ext3: journalled quotas</title>
<updated>2004-04-15T00:03:20Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2004-04-15T00:03:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=2df2c24aa6d2cd56777570d96494b921568b4405'/>
<id>urn:sha1:2df2c24aa6d2cd56777570d96494b921568b4405</id>
<content type='text'>
From: Jan Kara &lt;jack@ucw.cz&gt;

Journalled quota support for ext3: The patch consists of two parts - ext3
changes and changes in generic quota code.  The main idea of the changes is
that a transaction is always started before any operation which changes quota
file and dirtifying of the quota causes its write to disk.  These two changes
assure that quota change is journalled into the same transaction as the file
change and hence after journal replay quota is consistent with the filesystem
state.  As during journal replay inodes from orphan list are deleted/truncated
we have to do quota_on before the replay of the orphan list - this problem is
solved by additional mount options to ext3 with quota file names and format.

Some changes in generic code were also needed to assure that quota structure
in file is always allocated and so ordinary quota operations (like
adding/deleting a block/inode) need only a few blocks from the transaction.
</content>
</entry>
<entry>
<title>[PATCH] ext3: s_next_generation fixes</title>
<updated>2004-01-19T13:07:24Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@osdl.org</email>
</author>
<published>2004-01-19T13:07:24Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=546e1d8baf586ecc701280aa328df7251d70ddb8'/>
<id>urn:sha1:546e1d8baf586ecc701280aa328df7251d70ddb8</id>
<content type='text'>
- Add missing locking around s_next_generation increment

- Correctly set the initial value of s_next_generation.
</content>
</entry>
<entry>
<title>[PATCH] ext3: scalable counters and locks</title>
<updated>2003-06-18T01:26:49Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@digeo.com</email>
</author>
<published>2003-06-18T01:26:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=17aff93885fb217593afdc45205c5720e4376bdf'/>
<id>urn:sha1:17aff93885fb217593afdc45205c5720e4376bdf</id>
<content type='text'>
From: Alex Tomas &lt;bzzz@tmi.comex.ru&gt;

This is a port from ext2 of the fuzzy counters (for Orlov allocator
heuristics) and the hashed spinlocking (for the inode and bloock allocators).
</content>
</entry>
<entry>
<title>[PATCH] ext3: concurrent block/inode allocation</title>
<updated>2003-06-18T01:26:42Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@digeo.com</email>
</author>
<published>2003-06-18T01:26:42Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=c12b9866ea52183ad5f2d87ca01c09b3a7508f5a'/>
<id>urn:sha1:c12b9866ea52183ad5f2d87ca01c09b3a7508f5a</id>
<content type='text'>
From: Alex Tomas &lt;bzzz@tmi.comex.ru&gt;


This patch weans ext3 off lock_super()-based protection for the inode and
block allocators.

It's basically the same as the ext2 changes.


1) each group has own spinlock, which is used for group counter
   modifications

2) sb-&gt;s_free_blocks_count isn't used any more.  ext2_statfs() and
   find_group_orlov() loop over groups to count free blocks

3) sb-&gt;s_free_blocks_count is recalculated at mount/umount/sync_super time
   in order to check consistency and to avoid fsck warnings

4) reserved blocks are distributed over last groups

5) ext3_new_block() tries to use non-reserved blocks and if it fails then
   tries to use reserved blocks

6) ext3_new_block() and ext3_free_blocks do not modify sb-&gt;s_free_blocks,
   therefore they do not call mark_buffer_dirty() for superblock's
   buffer_head. this should reduce I/O a bit


Also fix orlov allocator boundary case:

In the interests of SMP scalability the ext2 free blocks and free inodes
counters are "approximate".  But there is a piece of code in the Orlov
allocator which fails due to boundary conditions on really small
filesystems.

Fix that up via a final allocation pass which simply uses first-fit for
allocatiopn of a directory inode.
</content>
</entry>
<entry>
<title>[PATCH] Orlov block allocator for ext3</title>
<updated>2002-11-02T04:57:43Z</updated>
<author>
<name>Theodore Y. Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2002-11-02T04:57:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=36615c1217d34f31dde7b805f130de3f53a1c520'/>
<id>urn:sha1:36615c1217d34f31dde7b805f130de3f53a1c520</id>
<content type='text'>
Here's the ext3 version.
</content>
</entry>
<entry>
<title>[PATCH] ext3 indexed directory support</title>
<updated>2002-10-08T04:28:11Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@digeo.com</email>
</author>
<published>2002-10-08T04:28:11Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=da5223ff390a6dc975989debf7905640fbb979b7'/>
<id>urn:sha1:da5223ff390a6dc975989debf7905640fbb979b7</id>
<content type='text'>
Daniel Phillips' indexed directory support.  Ported from ext2 by
Christopher Li.  Contributions from Andreas Dilger, Stephen Tweedie,
lots from Ted.

It requires e2fsprogs-1.29; I've updated the Changes file to reflect
that.
</content>
</entry>
<entry>
<title>[PATCH] Remove ext3's buffer_head cache</title>
<updated>2002-07-04T15:30:20Z</updated>
<author>
<name>Andrew Morton</name>
<email>akpm@zip.com.au</email>
</author>
<published>2002-07-04T15:30:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=34cb9226ec0b10bf152beffdfb669595c7d40490'/>
<id>urn:sha1:34cb9226ec0b10bf152beffdfb669595c7d40490</id>
<content type='text'>
Removes ext3's open-coded inode and allocation bitmap LRUs.

This patch includes a cleanup to ext3_new_block().  The local variables
`bh', `bh2', `i', `j', `k' and `tmp' have been renamed to something
more palatable.
</content>
</entry>
</feed>
