<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/fs/udf, branch v2.6.28</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>udf: Fix BUG_ON() in destroy_inode()</title>
<updated>2008-11-27T16:38:28+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2008-09-23T16:24:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=52b19ac993f1aeadbce15b55302be9a35346e235'/>
<id>52b19ac993f1aeadbce15b55302be9a35346e235</id>
<content type='text'>
udf_clear_inode() can leave behind buffers on mapping's i_private list (when
we truncated preallocation). Call invalidate_inode_buffers() so that the list
is properly cleaned-up before we return from udf_clear_inode(). This is ugly
and suggest that we should cleanup preallocation earlier than in clear_inode()
but currently there's no such call available since drop_inode() is called under
inode lock and thus is unusable for disk operations.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
udf_clear_inode() can leave behind buffers on mapping's i_private list (when
we truncated preallocation). Call invalidate_inode_buffers() so that the list
is properly cleaned-up before we return from udf_clear_inode(). This is ugly
and suggest that we should cleanup preallocation earlier than in clear_inode()
but currently there's no such call available since drop_inode() is called under
inode lock and thus is unusable for disk operations.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] get rid of on-stack dentry in udf</title>
<updated>2008-10-23T09:13:15+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2008-10-12T04:15:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9fbb76ce0fe96c07c44ba2aec3dc99f4b8d2b9c6'/>
<id>9fbb76ce0fe96c07c44ba2aec3dc99f4b8d2b9c6</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] switch all filesystems over to d_obtain_alias</title>
<updated>2008-10-23T09:13:01+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2008-08-11T13:49:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=440037287c5ebb07033ab927ca16bb68c291d309'/>
<id>440037287c5ebb07033ab927ca16bb68c291d309</id>
<content type='text'>
Switch all users of d_alloc_anon to d_obtain_alias.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Switch all users of d_alloc_anon to d_obtain_alias.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vfs: Use const for kernel parser table</title>
<updated>2008-10-13T17:10:37+00:00</updated>
<author>
<name>Steven Whitehouse</name>
<email>swhiteho@redhat.com</email>
</author>
<published>2008-10-13T09:46:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a447c0932445f92ce6f4c1bd020f62c5097a7842'/>
<id>a447c0932445f92ce6f4c1bd020f62c5097a7842</id>
<content type='text'>
This is a much better version of a previous patch to make the parser
tables constant. Rather than changing the typedef, we put the "const" in
all the various places where its required, allowing the __initconst
exception for nfsroot which was the cause of the previous trouble.

This was posted for review some time ago and I believe its been in -mm
since then.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Cc: Alexander Viro &lt;aviro@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a much better version of a previous patch to make the parser
tables constant. Rather than changing the typedef, we put the "const" in
all the various places where its required, allowing the __initconst
exception for nfsroot which was the cause of the previous trouble.

This was posted for review some time ago and I believe its been in -mm
since then.

Signed-off-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Cc: Alexander Viro &lt;aviro@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udf: add llseek method</title>
<updated>2008-09-08T18:31:04+00:00</updated>
<author>
<name>Christoph Hellwig</name>
<email>hch@lst.de</email>
</author>
<published>2008-09-08T17:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5c89468c12899b84886cb47eec93f0c88e0f896a'/>
<id>5c89468c12899b84886cb47eec93f0c88e0f896a</id>
<content type='text'>
UDF currently doesn't set a llseek method for regular files, which
means it will fall back to default_llseek.  This means no one can seek
beyond 2 Gigabytes on udf, and that there's not protection vs
the i_size updates from writers.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
UDF currently doesn't set a llseek method for regular files, which
means it will fall back to default_llseek.  This means no one can seek
beyond 2 Gigabytes on udf, and that there's not protection vs
the i_size updates from writers.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udf: Fix error paths in udf_new_inode()</title>
<updated>2008-08-19T09:05:05+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2008-08-18T11:44:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=97e1cfb08616987878f91a46cefdd7fc5fa3dba1'/>
<id>97e1cfb08616987878f91a46cefdd7fc5fa3dba1</id>
<content type='text'>
I case we failed to allocate memory for inode when creating it, we did not
properly free block already allocated for this inode. Move memory allocation
before the block allocation which fixes this issue (thanks for the idea go to
Ingo Oeser &lt;ioe-lkml@rameria.de&gt;). Also remove a few superfluous
initializations already done in udf_alloc_inode().

Reviewed-by: Ingo Oeser &lt;ioe-lkml@rameria.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I case we failed to allocate memory for inode when creating it, we did not
properly free block already allocated for this inode. Move memory allocation
before the block allocation which fixes this issue (thanks for the idea go to
Ingo Oeser &lt;ioe-lkml@rameria.de&gt;). Also remove a few superfluous
initializations already done in udf_alloc_inode().

Reviewed-by: Ingo Oeser &lt;ioe-lkml@rameria.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udf: Fix lock inversion between iprune_mutex and alloc_mutex (v2)</title>
<updated>2008-08-19T09:04:36+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2008-08-18T11:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=db0badc58e948b810c7a75cfcc48845e2949ee37'/>
<id>db0badc58e948b810c7a75cfcc48845e2949ee37</id>
<content type='text'>
A memory allocation inside alloc_mutex must not recurse back into the
filesystem itself because that leads to lock inversion between iprune_mutex and
alloc_mutex (and thus to deadlocks - see traces below). alloc_mutex is actually
needed only to update allocation statistics in the superblock so we can drop it
before we start allocating memory for the inode.

tar           D ffff81015b9c8c90     0  6614   6612
 ffff8100d5a21a20 0000000000000086 0000000000000000 00000000ffff0000
 ffff81015b9c8c90 ffff81015b8f0cd0 ffff81015b9c8ee0 0000000000000000
 0000000000000003 0000000000000000 0000000000000000 0000000000000000
Call Trace:
 [&lt;ffffffff803c1d8a&gt;] __mutex_lock_slowpath+0x64/0x9b
 [&lt;ffffffff803c1bef&gt;] mutex_lock+0xa/0xb
 [&lt;ffffffff8027f8c2&gt;] shrink_icache_memory+0x38/0x200
 [&lt;ffffffff80257742&gt;] shrink_slab+0xe3/0x15b
 [&lt;ffffffff802579db&gt;] try_to_free_pages+0x221/0x30d
 [&lt;ffffffff8025657e&gt;] isolate_pages_global+0x0/0x31
 [&lt;ffffffff8025324b&gt;] __alloc_pages_internal+0x252/0x3ab
 [&lt;ffffffff8026b08b&gt;] cache_alloc_refill+0x22e/0x47b
 [&lt;ffffffff8026ae37&gt;] kmem_cache_alloc+0x3b/0x61
 [&lt;ffffffff8026b15b&gt;] cache_alloc_refill+0x2fe/0x47b
 [&lt;ffffffff8026b34e&gt;] __kmalloc+0x76/0x9c
 [&lt;ffffffffa00751f2&gt;] :udf:udf_new_inode+0x202/0x2e2
 [&lt;ffffffffa007ae5e&gt;] :udf:udf_create+0x2f/0x16d
 [&lt;ffffffffa0078f27&gt;] :udf:udf_lookup+0xa6/0xad
...
kswapd0       D ffff81015b9d9270     0   125      2
 ffff81015b903c28 0000000000000046 ffffffff8028cbb0 00000000fffffffb
 ffff81015b9d9270 ffff81015b8f0cd0 ffff81015b9d94c0 000000000271b490
 ffffe2000271b458 ffffe2000271b420 ffffe20002728dc8 ffffe20002728d90
Call Trace:
 [&lt;ffffffff8028cbb0&gt;] __set_page_dirty+0xeb/0xf5
 [&lt;ffffffff8025403a&gt;] get_dirty_limits+0x1d/0x22f
 [&lt;ffffffff803c1d8a&gt;] __mutex_lock_slowpath+0x64/0x9b
 [&lt;ffffffff803c1bef&gt;] mutex_lock+0xa/0xb
 [&lt;ffffffffa0073f58&gt;] :udf:udf_bitmap_free_blocks+0x47/0x1eb
 [&lt;ffffffffa007df31&gt;] :udf:udf_discard_prealloc+0xc6/0x172
 [&lt;ffffffffa007875a&gt;] :udf:udf_clear_inode+0x1e/0x48
 [&lt;ffffffff8027f121&gt;] clear_inode+0x6d/0xc4
 [&lt;ffffffff8027f7f2&gt;] dispose_list+0x56/0xee
 [&lt;ffffffff8027fa5a&gt;] shrink_icache_memory+0x1d0/0x200
 [&lt;ffffffff80257742&gt;] shrink_slab+0xe3/0x15b
 [&lt;ffffffff80257e93&gt;] kswapd+0x346/0x447
...

Reported-by: Tibor Tajti &lt;tibor.tajti@gmail.com&gt;
Reviewed-by: Ingo Oeser &lt;ioe-lkml@rameria.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A memory allocation inside alloc_mutex must not recurse back into the
filesystem itself because that leads to lock inversion between iprune_mutex and
alloc_mutex (and thus to deadlocks - see traces below). alloc_mutex is actually
needed only to update allocation statistics in the superblock so we can drop it
before we start allocating memory for the inode.

tar           D ffff81015b9c8c90     0  6614   6612
 ffff8100d5a21a20 0000000000000086 0000000000000000 00000000ffff0000
 ffff81015b9c8c90 ffff81015b8f0cd0 ffff81015b9c8ee0 0000000000000000
 0000000000000003 0000000000000000 0000000000000000 0000000000000000
Call Trace:
 [&lt;ffffffff803c1d8a&gt;] __mutex_lock_slowpath+0x64/0x9b
 [&lt;ffffffff803c1bef&gt;] mutex_lock+0xa/0xb
 [&lt;ffffffff8027f8c2&gt;] shrink_icache_memory+0x38/0x200
 [&lt;ffffffff80257742&gt;] shrink_slab+0xe3/0x15b
 [&lt;ffffffff802579db&gt;] try_to_free_pages+0x221/0x30d
 [&lt;ffffffff8025657e&gt;] isolate_pages_global+0x0/0x31
 [&lt;ffffffff8025324b&gt;] __alloc_pages_internal+0x252/0x3ab
 [&lt;ffffffff8026b08b&gt;] cache_alloc_refill+0x22e/0x47b
 [&lt;ffffffff8026ae37&gt;] kmem_cache_alloc+0x3b/0x61
 [&lt;ffffffff8026b15b&gt;] cache_alloc_refill+0x2fe/0x47b
 [&lt;ffffffff8026b34e&gt;] __kmalloc+0x76/0x9c
 [&lt;ffffffffa00751f2&gt;] :udf:udf_new_inode+0x202/0x2e2
 [&lt;ffffffffa007ae5e&gt;] :udf:udf_create+0x2f/0x16d
 [&lt;ffffffffa0078f27&gt;] :udf:udf_lookup+0xa6/0xad
...
kswapd0       D ffff81015b9d9270     0   125      2
 ffff81015b903c28 0000000000000046 ffffffff8028cbb0 00000000fffffffb
 ffff81015b9d9270 ffff81015b8f0cd0 ffff81015b9d94c0 000000000271b490
 ffffe2000271b458 ffffe2000271b420 ffffe20002728dc8 ffffe20002728d90
Call Trace:
 [&lt;ffffffff8028cbb0&gt;] __set_page_dirty+0xeb/0xf5
 [&lt;ffffffff8025403a&gt;] get_dirty_limits+0x1d/0x22f
 [&lt;ffffffff803c1d8a&gt;] __mutex_lock_slowpath+0x64/0x9b
 [&lt;ffffffff803c1bef&gt;] mutex_lock+0xa/0xb
 [&lt;ffffffffa0073f58&gt;] :udf:udf_bitmap_free_blocks+0x47/0x1eb
 [&lt;ffffffffa007df31&gt;] :udf:udf_discard_prealloc+0xc6/0x172
 [&lt;ffffffffa007875a&gt;] :udf:udf_clear_inode+0x1e/0x48
 [&lt;ffffffff8027f121&gt;] clear_inode+0x6d/0xc4
 [&lt;ffffffff8027f7f2&gt;] dispose_list+0x56/0xee
 [&lt;ffffffff8027fa5a&gt;] shrink_icache_memory+0x1d0/0x200
 [&lt;ffffffff80257742&gt;] shrink_slab+0xe3/0x15b
 [&lt;ffffffff80257e93&gt;] kswapd+0x346/0x447
...

Reported-by: Tibor Tajti &lt;tibor.tajti@gmail.com&gt;
Reviewed-by: Ingo Oeser &lt;ioe-lkml@rameria.de&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>SL*B: drop kmem cache argument from constructor</title>
<updated>2008-07-26T19:00:07+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2008-07-26T02:45:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=51cc50685a4275c6a02653670af9f108a64e01cf'/>
<id>51cc50685a4275c6a02653670af9f108a64e01cf</id>
<content type='text'>
Kmem cache passed to constructor is only needed for constructors that are
themselves multiplexeres.  Nobody uses this "feature", nor does anybody uses
passed kmem cache in non-trivial way, so pass only pointer to object.

Non-trivial places are:
	arch/powerpc/mm/init_64.c
	arch/powerpc/mm/hugetlbpage.c

This is flag day, yes.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Acked-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Cc: Jon Tollefson &lt;kniht@linux.vnet.ibm.com&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]
[akpm@linux-foundation.org: fix mm/slab.c]
[akpm@linux-foundation.org: fix ubifs]
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Kmem cache passed to constructor is only needed for constructors that are
themselves multiplexeres.  Nobody uses this "feature", nor does anybody uses
passed kmem cache in non-trivial way, so pass only pointer to object.

Non-trivial places are:
	arch/powerpc/mm/init_64.c
	arch/powerpc/mm/hugetlbpage.c

This is flag day, yes.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Acked-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&gt;
Acked-by: Christoph Lameter &lt;cl@linux-foundation.org&gt;
Cc: Jon Tollefson &lt;kniht@linux.vnet.ibm.com&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Cc: Matt Mackall &lt;mpm@selenic.com&gt;
[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]
[akpm@linux-foundation.org: fix mm/slab.c]
[akpm@linux-foundation.org: fix ubifs]
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udf: Fix regression in UDF anchor block detection</title>
<updated>2008-06-24T09:38:03+00:00</updated>
<author>
<name>Tomas Janousek</name>
<email>tomi@nomi.cz</email>
</author>
<published>2008-06-23T13:12:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e8183c2452041326c95258ecc7865b6fcd91c730'/>
<id>e8183c2452041326c95258ecc7865b6fcd91c730</id>
<content type='text'>
In some cases it could happen that some block passed test in
udf_check_anchor_block() even though udf_read_tagged() refused to read it later
(e.g. because checksum was not correct).  This patch makes
udf_check_anchor_block() use udf_read_tagged() so that the checking is
stricter.

This fixes the regression (certain disks unmountable) caused by commit
423cf6dc04eb79d441bfda2b127bc4b57134b41d.

Signed-off-by: Tomas Janousek &lt;tomi@nomi.cz&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In some cases it could happen that some block passed test in
udf_check_anchor_block() even though udf_read_tagged() refused to read it later
(e.g. because checksum was not correct).  This patch makes
udf_check_anchor_block() use udf_read_tagged() so that the checking is
stricter.

This fixes the regression (certain disks unmountable) caused by commit
423cf6dc04eb79d441bfda2b127bc4b57134b41d.

Signed-off-by: Tomas Janousek &lt;tomi@nomi.cz&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udf: restore UDFFS_DEBUG to being undefined by default</title>
<updated>2008-06-16T12:24:36+00:00</updated>
<author>
<name>Paul Collins</name>
<email>paul@burly.ondioline.org</email>
</author>
<published>2008-06-14T02:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e4f3ec063421bdbcb93330e72aa3eeedb6a0d85a'/>
<id>e4f3ec063421bdbcb93330e72aa3eeedb6a0d85a</id>
<content type='text'>
Commit 706047a79725b585cf272fdefc234b31b6545c72, "udf: Fix compilation
warnings when UDF debug is on" inadvertently (I assume) enabled
debugging messages by default for UDF.  This patch disables them again.

Signed-off-by: Paul Collins &lt;paul@ondioline.org&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 706047a79725b585cf272fdefc234b31b6545c72, "udf: Fix compilation
warnings when UDF debug is on" inadvertently (I assume) enabled
debugging messages by default for UDF.  This patch disables them again.

Signed-off-by: Paul Collins &lt;paul@ondioline.org&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</pre>
</div>
</content>
</entry>
</feed>
