<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/udf/namei.c, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-01-08T18:27:49Z</updated>
<entry>
<title>udf: Check path length when reading symlink</title>
<updated>2015-01-08T18:27:49Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2014-12-18T21:37:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3dea7f8b21f9e66546f7aba6b04ea9e94a58320a'/>
<id>urn:sha1:3dea7f8b21f9e66546f7aba6b04ea9e94a58320a</id>
<content type='text'>
commit 0e5cc9a40ada6046e6bc3bdfcd0c0d7e4b706b14 upstream.

Symlink reading code does not check whether the resulting path fits into
the page provided by the generic code. This isn't as easy as just
checking the symlink size because of various encoding conversions we
perform on path. So we have to check whether there is still enough space
in the buffer on the fly.

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: saner calling conventions for udf_new_inode()</title>
<updated>2014-09-04T19:37:41Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-09-04T13:47:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b93a92be4cb48f22b78c95dea84089a1e72f860'/>
<id>urn:sha1:0b93a92be4cb48f22b78c95dea84089a1e72f860</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: fix the udf_iget() vs. udf_new_inode() races</title>
<updated>2014-09-04T19:37:41Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-09-04T13:38:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b231509616feb911c2a7a8814d58c0014ef5b17f'/>
<id>urn:sha1:b231509616feb911c2a7a8814d58c0014ef5b17f</id>
<content type='text'>
Currently udf_iget() (triggered by NFS) can race with udf_new_inode()
leading to two inode structures with the same inode number:

nfsd: iget_locked() creates inode
nfsd: try to read from disk, block on that.
udf_new_inode(): allocate inode with that inumber
udf_new_inode(): insert it into icache, set it up and dirty
udf_write_inode(): write inode into buffer cache
nfsd: get CPU again, look into buffer cache, see nice and sane on-disk
  inode, set the in-core inode from it

Fix the problem by putting inode into icache in locked state (I_NEW set)
and unlocking it only after it's fully set up.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: merge the pieces inserting a new non-directory object into directory</title>
<updated>2014-09-04T19:37:40Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2014-09-04T13:34:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d2be51cb34dc501791f3b8c01a99a3f2064bd8d1'/>
<id>urn:sha1:d2be51cb34dc501791f3b8c01a99a3f2064bd8d1</id>
<content type='text'>
boilerplate code in udf_{create,mknod,symlink} taken to new helper

symlink case converted to unique id calculated by udf_new_inode() - no
point finding a new one.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
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 unneeded up_write when fail to add entry in -&gt;symlink</title>
<updated>2014-08-19T16:29:30Z</updated>
<author>
<name>Chao Yu</name>
</author>
<published>2014-08-09T01:49:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=85cd083b498572fb9fa575cce3ed910c8ee84294'/>
<id>urn:sha1:85cd083b498572fb9fa575cce3ed910c8ee84294</id>
<content type='text'>
We have released the -&gt;i_data_sem before invoking udf_add_entry(),
so in following error path, we should not release this lock again.

Signed-off-by: Chao Yu &lt;chao2.yu@samsung.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: Fix lockdep warning from udf_symlink()</title>
<updated>2013-12-23T21:02:16Z</updated>
<author>
<name>Jan Kara</name>
</author>
<published>2013-12-23T21:02:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ea7772f828a2f1cf6fbf96a3e6f99ae149d2724'/>
<id>urn:sha1:4ea7772f828a2f1cf6fbf96a3e6f99ae149d2724</id>
<content type='text'>
Lockdep is complaining about UDF:
=============================================
[ INFO: possible recursive locking detected ]
3.12.0+ #16 Not tainted
---------------------------------------------
ln/7386 is trying to acquire lock:
 (&amp;ei-&gt;i_data_sem){+.+...}, at: [&lt;ffffffff8142f06d&gt;] udf_get_block+0x8d/0x130

but task is already holding lock:
 (&amp;ei-&gt;i_data_sem){+.+...}, at: [&lt;ffffffff81431a8d&gt;] udf_symlink+0x8d/0x690

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;ei-&gt;i_data_sem);
  lock(&amp;ei-&gt;i_data_sem);

 *** DEADLOCK ***

This is because we hold i_data_sem of the symlink inode while calling
udf_add_entry() for the directory. I don't think this can ever lead to
deadlocks since we never hold i_data_sem for two inodes in any other
place.

The fix is simple - move unlock of i_data_sem for symlink inode up. We
don't need it for anything when linking symlink inode to directory.

Reported-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>udf: provide -&gt;tmpfile()</title>
<updated>2013-06-29T08:57:12Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2013-06-12T05:35:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=656d09df8f73b6f2ae0c7205c6eb79f1642353f8'/>
<id>urn:sha1:656d09df8f73b6f2ae0c7205c6eb79f1642353f8</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>fs: encode_fh: return FILEID_INVALID if invalid fid_type</title>
<updated>2013-02-26T07:46:10Z</updated>
<author>
<name>Namjae Jeon</name>
</author>
<published>2013-02-17T06:48:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=94e07a7590ae855bae0536c42b3086fadc7c83a8'/>
<id>urn:sha1:94e07a7590ae855bae0536c42b3086fadc7c83a8</id>
<content type='text'>
This patch is a follow up on below patch:

[PATCH] exportfs: add FILEID_INVALID to indicate invalid fid_type
commit: 216b6cbdcbd86b1db0754d58886b466ae31f5a63

Signed-off-by: Namjae Jeon &lt;namjae.jeon@samsung.com&gt;
Signed-off-by: Vivek Trivedi &lt;t.vivek@samsung.com&gt;
Acked-by: Steven Whitehouse &lt;swhiteho@redhat.com&gt;
Acked-by: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs</title>
<updated>2012-07-25T00:40:44Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2012-07-25T00:40:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=08d9329c29ec98477e8ac2f7a513f2bfa3e9f3c5'/>
<id>urn:sha1:08d9329c29ec98477e8ac2f7a513f2bfa3e9f3c5</id>
<content type='text'>
Pull misc udf, ext2, ext3, and isofs fixes from Jan Kara:
 "Assorted, mostly trivial, fixes for udf, ext2, ext3, and isofs.  I'm
  on vacation and scarcely checking email since we are expecting baby
  any day now but these fixes should be safe to go in and I don't want
  to delay them unnecessarily."

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
  udf: avoid info leak on export
  isofs: avoid info leak on export
  udf: Improve table length check to avoid possible overflow
  ext3: Check return value of blkdev_issue_flush()
  jbd: Check return value of blkdev_issue_flush()
  udf: Do not decrement i_blocks when freeing indirect extent block
  udf: Fix memory leak when mounting
  ext2: cleanup the confused goto label
  UDF: Remove unnecessary variable "offset" from udf_fill_inode
  udf: stop using s_dirt
  ext3: force ro mount if ext3_setup_super() fails
  quota: fix checkpatch.pl warning by replacing &lt;asm/uaccess.h&gt; with &lt;linux/uaccess.h&gt;
</content>
</entry>
</feed>
