<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v3.4.5</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v3.4.5</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v3.4.5'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-07-16T16:04:45Z</updated>
<entry>
<title>ocfs2: fix NULL pointer dereference in __ocfs2_change_file_space()</title>
<updated>2012-07-16T16:04:45Z</updated>
<author>
<name>Luis Henriques</name>
<email>luis.henriques@canonical.com</email>
</author>
<published>2012-07-11T21:02:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bb2b649805527af1d823f871e7e3a95c4e6a018e'/>
<id>urn:sha1:bb2b649805527af1d823f871e7e3a95c4e6a018e</id>
<content type='text'>
commit a4e08d001f2e50bb8b3c4eebadcf08e5535f02ee upstream.

As ocfs2_fallocate() will invoke __ocfs2_change_file_space() with a NULL
as the first parameter (file), it may trigger a NULL pointer dereferrence
due to a missing check.

Addresses http://bugs.launchpad.net/bugs/1006012

Signed-off-by: Luis Henriques &lt;luis.henriques@canonical.com&gt;
Reported-by: Bret Towe &lt;magnade@gmail.com&gt;
Tested-by: Bret Towe &lt;magnade@gmail.com&gt;
Cc: Sunil Mushran &lt;sunil.mushran@oracle.com&gt;
Acked-by: Joel Becker &lt;jlbec@evilplan.org&gt;
Acked-by: Mark Fasheh &lt;mfasheh@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>fs: ramfs: file-nommu: add SetPageUptodate()</title>
<updated>2012-07-16T16:04:45Z</updated>
<author>
<name>Bob Liu</name>
<email>lliubbo@gmail.com</email>
</author>
<published>2012-07-11T21:02:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0fa627b15c842095b5147f381fa1943a6a46bb01'/>
<id>urn:sha1:0fa627b15c842095b5147f381fa1943a6a46bb01</id>
<content type='text'>
commit fea9f718b3d68147f162ed2d870183ce5e0ad8d8 upstream.

There is a bug in the below scenario for !CONFIG_MMU:

 1. create a new file
 2. mmap the file and write to it
 3. read the file can't get the correct value

Because

  sys_read() -&gt; generic_file_aio_read() -&gt; simple_readpage() -&gt; clear_page()

which causes the page to be zeroed.

Add SetPageUptodate() to ramfs_nommu_expand_for_mapping() so that
generic_file_aio_read() do not call simple_readpage().

Signed-off-by: Bob Liu &lt;lliubbo@gmail.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Greg Ungerer &lt;gerg@uclinux.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>splice: fix racy pipe-&gt;buffers uses</title>
<updated>2012-07-16T16:04:42Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-12T13:24:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2c07f25ea7800adb36cd8da9b58c4ecd3fc3d064'/>
<id>urn:sha1:2c07f25ea7800adb36cd8da9b58c4ecd3fc3d064</id>
<content type='text'>
commit 047fe3605235888f3ebcda0c728cb31937eadfe6 upstream.

Dave Jones reported a kernel BUG at mm/slub.c:3474! triggered
by splice_shrink_spd() called from vmsplice_to_pipe()

commit 35f3d14dbbc5 (pipe: add support for shrinking and growing pipes)
added capability to adjust pipe-&gt;buffers.

Problem is some paths don't hold pipe mutex and assume pipe-&gt;buffers
doesn't change for their duration.

Fix this by adding nr_pages_max field in struct splice_pipe_desc, and
use it in place of pipe-&gt;buffers where appropriate.

splice_shrink_spd() loses its struct pipe_inode_info argument.

Reported-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Jens Axboe &lt;axboe@kernel.dk&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Tom Herbert &lt;therbert@google.com&gt;
Tested-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
[bwh: Backported to 3.2:
 - Adjust context in vmsplice_to_pipe()
 - Update one more call to splice_shrink_spd(), from skb_splice_bits()]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: hard-code init_net for NFS callback transports</title>
<updated>2012-07-16T16:04:40Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
<email>skinsbursky@parallels.com</email>
</author>
<published>2012-06-25T20:40:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f183282bb88ffa944449cf3a24a649c754d9e7af'/>
<id>urn:sha1:f183282bb88ffa944449cf3a24a649c754d9e7af</id>
<content type='text'>
upstream commit 12918b10d59e975fd5241eef03ef9e6d5ea3dcfe.

In case of destroying mount namespace on child reaper exit, nsproxy is zeroed
to the point already. So, dereferencing of it is invalid.
This patch hard-code "init_net" for all network namespace references for NFS
callback services. This will be fixed with proper NFS callback
containerization.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>SUNRPC: move per-net operations from svc_destroy()</title>
<updated>2012-07-16T16:04:39Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
<email>skinsbursky@parallels.com</email>
</author>
<published>2012-06-25T20:40:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ee92389156c2cdb45b94866186a4174858b820cd'/>
<id>urn:sha1:ee92389156c2cdb45b94866186a4174858b820cd</id>
<content type='text'>
upstream commit 786185b5f8abefa6a8a16695bb4a59c164d5a071.

The idea is to separate service destruction and per-net operations,
because these are two different things and the mix looks ugly.

Notes:

1) For NFS server this patch looks ugly (sorry for that). But these
place will be rewritten soon during NFSd containerization.

2) LockD per-net counter increase int lockd_up() was moved prior to
make_socks() to make lockd_down_net() call safe in case of error.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>SUNRPC: new svc_bind() routine introduced</title>
<updated>2012-07-16T16:04:39Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
<email>skinsbursky@parallels.com</email>
</author>
<published>2012-06-25T20:40:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=10762419cafd82a9a3a6f68bef54c29f1af75842'/>
<id>urn:sha1:10762419cafd82a9a3a6f68bef54c29f1af75842</id>
<content type='text'>
upstream commit 9793f7c88937e7ac07305ab1af1a519225836823.

This new routine is responsible for service registration in a specified
network context.

The idea is to separate service creation from per-net operations.

Note also: since registering service with svc_bind() can fail, the
service will be destroyed and during destruction it will try to
unregister itself from rpcbind. In this case unregistration has to be
skipped.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Lockd: pass network namespace to creation and destruction routines</title>
<updated>2012-07-16T16:04:39Z</updated>
<author>
<name>Stanislav Kinsbursky</name>
<email>skinsbursky@parallels.com</email>
</author>
<published>2012-06-25T20:40:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0bbc9d1b4b011e83ba65852b1d652561c7f562f1'/>
<id>urn:sha1:0bbc9d1b4b011e83ba65852b1d652561c7f562f1</id>
<content type='text'>
upstream commit e3f70eadb7dddfb5a2bb9afff7abfc6ee17a29d0.

v2: dereference of most probably already released nlm_host removed in
nlmclnt_done() and reclaimer().

These routines are called from locks reclaimer() kernel thread. This thread
works in "init_net" network context and currently relays on persence on lockd
thread and it's per-net resources. Thus lockd_up() and lockd_down() can't relay
on current network context. So let's pass corrent one into them.

Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>eCryptfs: Properly check for O_RDONLY flag before doing privileged open</title>
<updated>2012-07-16T16:04:26Z</updated>
<author>
<name>Tyler Hicks</name>
<email>tyhicks@canonical.com</email>
</author>
<published>2012-06-12T18:17:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b6855f6d78cee5d72adc8f07be2646dd83c171c3'/>
<id>urn:sha1:b6855f6d78cee5d72adc8f07be2646dd83c171c3</id>
<content type='text'>
commit 9fe79d7600497ed8a95c3981cbe5b73ab98222f0 upstream.

If the first attempt at opening the lower file read/write fails,
eCryptfs will retry using a privileged kthread. However, the privileged
retry should not happen if the lower file's inode is read-only because a
read/write open will still be unsuccessful.

The check for determining if the open should be retried was intended to
be based on the access mode of the lower file's open flags being
O_RDONLY, but the check was incorrectly performed. This would cause the
open to be retried by the privileged kthread, resulting in a second
failed open of the lower file. This patch corrects the check to
determine if the open request should be handled by the privileged
kthread.

Signed-off-by: Tyler Hicks &lt;tyhicks@canonical.com&gt;
Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>eCryptfs: Fix lockdep warning in miscdev operations</title>
<updated>2012-07-16T16:04:26Z</updated>
<author>
<name>Tyler Hicks</name>
<email>tyhicks@canonical.com</email>
</author>
<published>2012-06-11T17:21:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b6d7c70709e324e074d3a69249980bba1529fd01'/>
<id>urn:sha1:b6d7c70709e324e074d3a69249980bba1529fd01</id>
<content type='text'>
commit 60d65f1f07a7d81d3eb3b91fc13fca80f2fdbb12 upstream.

Don't grab the daemon mutex while holding the message context mutex.
Addresses this lockdep warning:

 ecryptfsd/2141 is trying to acquire lock:
  (&amp;ecryptfs_msg_ctx_arr[i].mux){+.+.+.}, at: [&lt;ffffffffa029c213&gt;] ecryptfs_miscdev_read+0x143/0x470 [ecryptfs]

 but task is already holding lock:
  (&amp;(*daemon)-&gt;mux){+.+...}, at: [&lt;ffffffffa029c2ec&gt;] ecryptfs_miscdev_read+0x21c/0x470 [ecryptfs]

 which lock already depends on the new lock.

 the existing dependency chain (in reverse order) is:

 -&gt; #1 (&amp;(*daemon)-&gt;mux){+.+...}:
        [&lt;ffffffff810a3b8d&gt;] lock_acquire+0x9d/0x220
        [&lt;ffffffff8151c6da&gt;] __mutex_lock_common+0x5a/0x4b0
        [&lt;ffffffff8151cc64&gt;] mutex_lock_nested+0x44/0x50
        [&lt;ffffffffa029c5d7&gt;] ecryptfs_send_miscdev+0x97/0x120 [ecryptfs]
        [&lt;ffffffffa029b744&gt;] ecryptfs_send_message+0x134/0x1e0 [ecryptfs]
        [&lt;ffffffffa029a24e&gt;] ecryptfs_generate_key_packet_set+0x2fe/0xa80 [ecryptfs]
        [&lt;ffffffffa02960f8&gt;] ecryptfs_write_metadata+0x108/0x250 [ecryptfs]
        [&lt;ffffffffa0290f80&gt;] ecryptfs_create+0x130/0x250 [ecryptfs]
        [&lt;ffffffff811963a4&gt;] vfs_create+0xb4/0x120
        [&lt;ffffffff81197865&gt;] do_last+0x8c5/0xa10
        [&lt;ffffffff811998f9&gt;] path_openat+0xd9/0x460
        [&lt;ffffffff81199da2&gt;] do_filp_open+0x42/0xa0
        [&lt;ffffffff81187998&gt;] do_sys_open+0xf8/0x1d0
        [&lt;ffffffff81187a91&gt;] sys_open+0x21/0x30
        [&lt;ffffffff81527d69&gt;] system_call_fastpath+0x16/0x1b

 -&gt; #0 (&amp;ecryptfs_msg_ctx_arr[i].mux){+.+.+.}:
        [&lt;ffffffff810a3418&gt;] __lock_acquire+0x1bf8/0x1c50
        [&lt;ffffffff810a3b8d&gt;] lock_acquire+0x9d/0x220
        [&lt;ffffffff8151c6da&gt;] __mutex_lock_common+0x5a/0x4b0
        [&lt;ffffffff8151cc64&gt;] mutex_lock_nested+0x44/0x50
        [&lt;ffffffffa029c213&gt;] ecryptfs_miscdev_read+0x143/0x470 [ecryptfs]
        [&lt;ffffffff811887d3&gt;] vfs_read+0xb3/0x180
        [&lt;ffffffff811888ed&gt;] sys_read+0x4d/0x90
        [&lt;ffffffff81527d69&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: Tyler Hicks &lt;tyhicks@canonical.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>eCryptfs: Gracefully refuse miscdev file ops on inherited/passed files</title>
<updated>2012-07-16T16:04:26Z</updated>
<author>
<name>Tyler Hicks</name>
<email>tyhicks@canonical.com</email>
</author>
<published>2012-06-11T16:24:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6dfa530c0b33f1ccd2d8b103a2dea6ec559de66c'/>
<id>urn:sha1:6dfa530c0b33f1ccd2d8b103a2dea6ec559de66c</id>
<content type='text'>
commit 8dc6780587c99286c0d3de747a2946a76989414a upstream.

File operations on /dev/ecryptfs would BUG() when the operations were
performed by processes other than the process that originally opened the
file. This could happen with open files inherited after fork() or file
descriptors passed through IPC mechanisms. Rather than calling BUG(), an
error code can be safely returned in most situations.

In ecryptfs_miscdev_release(), eCryptfs still needs to handle the
release even if the last file reference is being held by a process that
didn't originally open the file. ecryptfs_find_daemon_by_euid() will not
be successful, so a pointer to the daemon is stored in the file's
private_data. The private_data pointer is initialized when the miscdev
file is opened and only used when the file is released.

https://launchpad.net/bugs/994247

Signed-off-by: Tyler Hicks &lt;tyhicks@canonical.com&gt;
Reported-by: Sasha Levin &lt;levinsasha928@gmail.com&gt;
Tested-by: Sasha Levin &lt;levinsasha928@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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