<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/ext4/super.c, branch linux-2.6.37.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.37.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-03-27T19:00:48Z</updated>
<entry>
<title>ext4: skip orphan cleanup if fs has unknown ROCOMPAT features</title>
<updated>2011-03-27T19:00:48Z</updated>
<author>
<name>Amir Goldstein</name>
</author>
<published>2011-02-28T05:53:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=191095aaab76c04a1c2d410bafd2da1a6a95f476'/>
<id>urn:sha1:191095aaab76c04a1c2d410bafd2da1a6a95f476</id>
<content type='text'>
commit d39195c33bb1b5fdcb0f416e8a0b34bfdb07a027 upstream.

Orphan cleanup is currently executed even if the file system has some
number of unknown ROCOMPAT features, which deletes inodes and frees
blocks, which could be very bad for some RO_COMPAT features,
especially the SNAPSHOT feature.

This patch skips the orphan cleanup if it contains readonly compatible
features not known by this ext4 implementation, which would prevent
the fs from being mounted (or remounted) readwrite.

Signed-off-by: Amir Goldstein &lt;amir73il@users.sf.net&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ext4: unregister features interface on module unload</title>
<updated>2011-02-17T23:14:21Z</updated>
<author>
<name>Lukas Czerner</name>
</author>
<published>2011-02-03T19:33:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b01549142aa6f0fe513d3ba85cdef5228fca6e9'/>
<id>urn:sha1:4b01549142aa6f0fe513d3ba85cdef5228fca6e9</id>
<content type='text'>
commit 8f021222c1e2756ea4c9dde93b23e1d2a0a4ec37 upstream.

Ext4 features interface was not properly unregistered which led to
problems while unloading/reloading ext4 module. This commit fixes that by
adding proper kobject unregistration code into ext4_exit_fs() as well as
fail-path of ext4_init_fs()

Reported-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ext4: fix panic on module unload when stopping lazyinit thread</title>
<updated>2011-02-17T23:14:21Z</updated>
<author>
<name>Eric Sandeen</name>
</author>
<published>2011-02-03T19:33:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=974bc5d1969424f1a659a8dbe94e4378bf7d2261'/>
<id>urn:sha1:974bc5d1969424f1a659a8dbe94e4378bf7d2261</id>
<content type='text'>
commit 8f1f745331c1b560f53c0d60e55a4f4f43f7cce5 upstream.

https://bugzilla.kernel.org/show_bug.cgi?id=27652

If the lazyinit thread is running, the teardown function
ext4_destroy_lazyinit_thread() has problems:

        ext4_clear_request_list();
        while (ext4_li_info-&gt;li_task) {
                wake_up(&amp;ext4_li_info-&gt;li_wait_daemon);
                wait_event(ext4_li_info-&gt;li_wait_task,
                           ext4_li_info-&gt;li_task == NULL);
        }

Clearing the request list will cause the thread to exit and free
ext4_li_info, so then we're waiting on something which is getting
freed.

Fix this up by making the thread respond to kthread_stop, and exit,
without the need to wait for that exit in some other homegrown way.

Reported-and-Tested-by: Tao Ma &lt;boyu.mt@taobao.com&gt;
Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ext4: fix uninitialized variable in ext4_register_li_request</title>
<updated>2011-02-17T23:14:20Z</updated>
<author>
<name>Andrew Morton</name>
</author>
<published>2011-01-10T17:30:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3d8874cb3422508a5cfa2658ef9f3d8ecd923a40'/>
<id>urn:sha1:3d8874cb3422508a5cfa2658ef9f3d8ecd923a40</id>
<content type='text'>
commit 6c5a6cb998854f3c579ecb2bc1423d302bcb1b76 upstream.

fs/ext4/super.c: In function 'ext4_register_li_request':
fs/ext4/super.c:2936: warning: 'ret' may be used uninitialized in this function

It looks buggy to me, too.

Cc: Lukas Czerner &lt;lczerner@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ext4: Turn off multiple page-io submission by default</title>
<updated>2010-12-14T20:27:50Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-12-14T20:27:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1449032be17abb69116dbc393f67ceb8bd034f92'/>
<id>urn:sha1:1449032be17abb69116dbc393f67ceb8bd034f92</id>
<content type='text'>
Jon Nelson has found a test case which causes postgresql to fail with
the error:

psql:t.sql:4: ERROR: invalid page header in block 38269 of relation base/16384/16581

Under memory pressure, it looks like part of a file can end up getting
replaced by zero's.  Until we can figure out the cause, we'll roll
back the change and use block_write_full_page() instead of
ext4_bio_write_page().  The new, more efficient writing function can
be used via the mount option mblk_io_submit, so we can test and fix
the new page I/O code.

To reproduce the problem, install postgres 8.4 or 9.0, and pin enough
memory such that the system just at the end of triggering writeback
before running the following sql script:

begin;
create temporary table foo as select x as a, ARRAY[x] as b FROM
generate_series(1, 10000000 ) AS x;
create index foo_a_idx on foo (a);
create index foo_b_idx on foo USING GIN (b);
rollback;

If the temporary table is created on a hard drive partition which is
encrypted using dm_crypt, then under memory pressure, approximately
30-40% of the time, pgsql will issue the above failure.

This patch should fix this problem, and the problem will come back if
the file system is mounted with the mblk_io_submit mount option.

Reported-by: Jon Nelson &lt;jnelson@jamponi.net&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>fs: Do not dispatch FITRIM through separate super_operation</title>
<updated>2010-11-20T02:18:35Z</updated>
<author>
<name>Lukas Czerner</name>
</author>
<published>2010-11-20T02:18:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93bb41f4f8b89ac8b4d0a734bc59634cb0a29a89'/>
<id>urn:sha1:93bb41f4f8b89ac8b4d0a734bc59634cb0a29a89</id>
<content type='text'>
There was concern that FITRIM ioctl is not common enough to be included
in core vfs ioctl, as Christoph Hellwig pointed out there's no real point
in dispatching this out to a separate vector instead of just through
-&gt;ioctl.

So this commit removes ioctl_fstrim() from vfs ioctl and trim_fs
from super_operation structure.

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>ext4: ext4_fill_super shouldn't return 0 on corruption</title>
<updated>2010-11-19T14:56:44Z</updated>
<author>
<name>Darrick J. Wong</name>
</author>
<published>2010-11-19T14:56:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a9ae68a349aa076bc8557ee2fcf865574459282'/>
<id>urn:sha1:5a9ae68a349aa076bc8557ee2fcf865574459282</id>
<content type='text'>
At the start of ext4_fill_super, ret is set to -EINVAL, and any failure path
out of that function returns ret.  However, the generic_check_addressable
clause sets ret = 0 (if it passes), which means that a subsequent failure (e.g.
a group checksum error) returns 0 even though the mount should fail.  This
causes vfs_kern_mount in turn to think that the mount succeeded, leading to an
oops.

A simple fix is to avoid using ret for the generic_check_addressable check,
which was last changed in commit 30ca22c70e3ef0a96ff84de69cd7e8561b416cb2.

Signed-off-by: Darrick J. Wong &lt;djwong@us.ibm.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: missing unlock in ext4_clear_request_list()</title>
<updated>2010-11-18T02:46:25Z</updated>
<author>
<name>Dan Carpenter</name>
</author>
<published>2010-11-18T02:46:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4c8cc652d9f70680dd91be60a7a455040d0a282'/>
<id>urn:sha1:f4c8cc652d9f70680dd91be60a7a455040d0a282</id>
<content type='text'>
If the the li_request_list was empty then it returned with the lock
held.  Instead of adding a "goto unlock" I just removed that special
case and let it go past the empty list_for_each_safe().

Signed-off-by: Dan Carpenter &lt;error27@gmail.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: Add new ext4 inode tracepoints</title>
<updated>2010-11-08T18:51:33Z</updated>
<author>
<name>Theodore Ts'o</name>
</author>
<published>2010-11-08T18:51:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7ff9c073dd4d7200399076554f7ab9b876f196f6'/>
<id>urn:sha1:7ff9c073dd4d7200399076554f7ab9b876f196f6</id>
<content type='text'>
Add ext4_evict_inode, ext4_drop_inode, ext4_mark_inode_dirty, and
ext4_begin_ordered_truncate()

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
</content>
</entry>
<entry>
<title>ext4: do not try to grab the s_umount semaphore in ext4_quota_off</title>
<updated>2010-11-08T18:47:33Z</updated>
<author>
<name>Dmitry Monakhov</name>
</author>
<published>2010-11-08T18:47:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=87009d86dc045d228e21242467a67a5f99347553'/>
<id>urn:sha1:87009d86dc045d228e21242467a67a5f99347553</id>
<content type='text'>
It's not needed to sync the filesystem, and it fixes a lock_dep complaint.

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@gmail.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;

</content>
</entry>
</feed>
