<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/udf/inode.c, branch linux-3.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-03-06T22:57:37Z</updated>
<entry>
<title>udf: Check length of extended attributes and allocation descriptors</title>
<updated>2015-03-06T22:57:37Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2015-01-07T12:49:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c2fe31b547af1f5e79e35f57f343572063ce633d'/>
<id>urn:sha1:c2fe31b547af1f5e79e35f57f343572063ce633d</id>
<content type='text'>
commit 23b133bdc452aa441fcb9b82cbf6dd05cfd342d0 upstream.

Check length of extended attributes and allocation descriptors when
loading inodes from disk. Otherwise corrupted filesystems could confuse
the code and make the kernel oops.

Reported-by: Carl Henrik Lunde &lt;chlunde@ping.uio.no&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>udf: Remove repeated loads blocksize</title>
<updated>2015-03-06T22:57:37Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2015-01-07T12:46:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ca5861548a24b5bd82f5475250310180b02d3b9'/>
<id>urn:sha1:6ca5861548a24b5bd82f5475250310180b02d3b9</id>
<content type='text'>
commit 79144954278d4bb5989f8b903adcac7a20ff2a5a upstream.

Store blocksize in a local variable in udf_fill_inode() since it is used
a lot of times.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>udf: Verify i_size when loading inode</title>
<updated>2014-12-19T12:13:05Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-12-19T11:03:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e159332b9af4b04d882dbcfe1bb0117f0a6d4b58'/>
<id>urn:sha1:e159332b9af4b04d882dbcfe1bb0117f0a6d4b58</id>
<content type='text'>
Verify that inode size is sane when loading inode with data stored in
ICB. Otherwise we may get confused later when working with the inode and
inode size is too big.

CC: stable@vger.kernel.org
Reported-by: Carl Henrik Lunde &lt;chlunde@ping.uio.no&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Fix loading of special inodes</title>
<updated>2014-10-09T11:06:14Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-10-09T10:52:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6174c2eb8ecef271159bdcde460ce8af54d8f72f'/>
<id>urn:sha1:6174c2eb8ecef271159bdcde460ce8af54d8f72f</id>
<content type='text'>
Some UDF media have special inodes (like VAT or metadata partition
inodes) whose link_count is 0. Thus commit 4071b9136223 (udf: Properly
detect stale inodes) broke loading these inodes because udf_iget()
started returning -ESTALE for them. Since we still need to properly
detect stale inodes queried by NFS, create two variants of udf_iget() -
one which is used for looking up special inodes (which ignores
link_count == 0) and one which is used for other cases which return
ESTALE when link_count == 0.

Fixes: 4071b913622316970d0e1919f7d82b4403fec5f2
CC: stable@vger.kernel.org
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Set i_generation field</title>
<updated>2014-09-04T19:37:40Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-09-04T14:26:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=470cca56c366428d4d5785a0a5a291619c332c7f'/>
<id>urn:sha1:470cca56c366428d4d5785a0a5a291619c332c7f</id>
<content type='text'>
Currently UDF doesn't initialize i_generation in any way and thus NFS
can easily get reallocated inodes from stale file handles. Luckily UDF
already has a unique object identifier associated with each inode -
i_unique. Use that for initialization of i_generation.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Properly detect stale inodes</title>
<updated>2014-09-04T19:37:39Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-09-04T14:19:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4071b913622316970d0e1919f7d82b4403fec5f2'/>
<id>urn:sha1:4071b913622316970d0e1919f7d82b4403fec5f2</id>
<content type='text'>
NFS can easily ask for inodes that are already deleted. Currently UDF
happily returns such inodes which is a bug. Return -ESTALE if
udf_read_inode() is asked to read deleted inode.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Make udf_read_inode() and udf_iget() return error</title>
<updated>2014-09-04T19:36:35Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-09-04T14:15:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d3d5e860a114ae606b1af2ba7f64cb19fbeb414'/>
<id>urn:sha1:6d3d5e860a114ae606b1af2ba7f64cb19fbeb414</id>
<content type='text'>
Currently __udf_read_inode() wasn't returning anything and we found out
whether we succeeded reading inode by checking whether inode is bad or
not. udf_iget() returned NULL on failure and inode pointer otherwise.
Make these two functions properly propagate errors up the call stack and
use the return value in callers.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Avoid infinite loop when processing indirect ICBs</title>
<updated>2014-09-04T12:12:29Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-09-04T12:06:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c03aa9f6e1f938618e6db2e23afef0574efeeb65'/>
<id>urn:sha1:c03aa9f6e1f938618e6db2e23afef0574efeeb65</id>
<content type='text'>
We did not implement any bound on number of indirect ICBs we follow when
loading inode. Thus corrupted medium could cause kernel to go into an
infinite loop, possibly causing a stack overflow.

Fix the possible stack overflow by removing recursion from
__udf_read_inode() and limit number of indirect ICBs we follow to avoid
infinite loops.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Fold udf_fill_inode() into __udf_read_inode()</title>
<updated>2014-09-04T11:32:50Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-09-04T11:32:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bb7720a0b4a8ca3269fd86fbb45a78d2e0d3deaf'/>
<id>urn:sha1:bb7720a0b4a8ca3269fd86fbb45a78d2e0d3deaf</id>
<content type='text'>
There's no good reason to separate these since udf_fill_inode() is
called only from __udf_read_inode() and both do part of the same thing.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Avoid dir link count to go negative</title>
<updated>2014-09-04T09:47:51Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-09-04T09:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8a70ee3307908c46f952df91be72a18d5f5ad0a3'/>
<id>urn:sha1:8a70ee3307908c46f952df91be72a18d5f5ad0a3</id>
<content type='text'>
If we are writing back inode of unlinked directory, its link count ends
up being (u16)-1. Although the inode is deleted, udf_iget() can load the
inode when NFS uses stale file handle and get confused.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
</feed>
