<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v2.6.27.30</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v2.6.27.30</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v2.6.27.30'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-08-16T21:27:41Z</updated>
<entry>
<title>NFS: Fix an O_DIRECT Oops...</title>
<updated>2009-08-16T21:27:41Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2009-08-12T13:12:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=75a171628ce5a670db5adbf59270fb3d2fe673fa'/>
<id>urn:sha1:75a171628ce5a670db5adbf59270fb3d2fe673fa</id>
<content type='text'>
commit 1ae88b2e446261c038f2c0c3150ffae142b227a2 upstream.

We can't call nfs_readdata_release()/nfs_writedata_release() without
first initialising and referencing args.context. Doing so inside
nfs_direct_read_schedule_segment()/nfs_direct_write_schedule_segment()
causes an Oops.

We should rather be calling nfs_readdata_free()/nfs_writedata_free() in
those cases.

Looking at the O_DIRECT code, the "struct nfs_direct_req" is already
referencing the nfs_open_context for us. Since the readdata and writedata
structures carry a reference to that, we can simplify things by getting rid
of the extra nfs_open_context references, so that we can replace all
instances of nfs_readdata_release()/nfs_writedata_release().

Reported-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Tested-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mm_for_maps: shift down_read(mmap_sem) to the caller</title>
<updated>2009-08-16T21:27:35Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@redhat.com</email>
</author>
<published>2009-07-10T01:27:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=60634e4b830850bb38016f1e6a7a7358eba8118c'/>
<id>urn:sha1:60634e4b830850bb38016f1e6a7a7358eba8118c</id>
<content type='text'>
commit 00f89d218523b9bf6b522349c039d5ac80aa536d upstream.

mm_for_maps() takes -&gt;mmap_sem after security checks, this looks
strange and obfuscates the locking rules. Move this lock to its
single caller, m_start().

Signed-off-by: Oleg Nesterov &lt;oleg@redhat.com&gt;
Acked-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mm_for_maps: simplify, use ptrace_may_access()</title>
<updated>2009-08-16T21:27:32Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@redhat.com</email>
</author>
<published>2009-06-23T19:25:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a79c30e57c0eac03aae8be4649958f8592141d20'/>
<id>urn:sha1:a79c30e57c0eac03aae8be4649958f8592141d20</id>
<content type='text'>
commit 13f0feafa6b8aead57a2a328e2fca6a5828bf286 upstream.

It would be nice to kill __ptrace_may_access(). It requires task_lock(),
but this lock is only needed to read mm-&gt;flags in the middle.

Convert mm_for_maps() to use ptrace_may_access(), this also simplifies
the code a little bit.

Also, we do not need to take -&gt;mmap_sem in advance. In fact I think
mm_for_maps() should not play with -&gt;mmap_sem at all, the caller should
take this lock.

With or without this patch, without -&gt;cred_guard_mutex held we can race
with exec() and get the new -&gt;mm but check old creds.

Signed-off-by: Oleg Nesterov &lt;oleg@redhat.com&gt;
Reviewed-by: Serge Hallyn &lt;serue@us.ibm.com&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>flat: fix uninitialized ptr with shared libs</title>
<updated>2009-08-16T21:27:15Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-08-06T22:09:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=58d92bedd89043cf0ade84a902130078dc9094b8'/>
<id>urn:sha1:58d92bedd89043cf0ade84a902130078dc9094b8</id>
<content type='text'>
commit 3440625d78711bee41a84cf29c3d8c579b522666 upstream.

The new credentials code broke load_flat_shared_library() as it now uses
an uninitialized cred pointer.

Reported-by: Bernd Schmidt &lt;bernds_cb1@t-online.de&gt;
Tested-by: Bernd Schmidt &lt;bernds_cb1@t-online.de&gt;
Cc: Mike Frysinger &lt;vapier@gentoo.org&gt;
Cc: David Howells &lt;dhowells@redhat.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@suse.de&gt;

</content>
</entry>
<entry>
<title>compat_ioctl: hook up compat handler for FIEMAP ioctl</title>
<updated>2009-08-16T21:27:11Z</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2009-08-06T22:07:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9ac3664242f11fb38ea5029712bc77ee317fe38c'/>
<id>urn:sha1:9ac3664242f11fb38ea5029712bc77ee317fe38c</id>
<content type='text'>
commit 69130c7cf96ea853dc5be599dd6a4b98907d39cc upstream.

The FIEMAP_IOC_FIEMAP mapping ioctl was missing a 32-bit compat handler,
which means that 32-bit suerspace on 64-bit kernels cannot use this ioctl
command.

The structure is nicely aligned, padded, and sized, so it is just this
simple.

Tested w/ 32-bit ioctl tester (from Josef) on a 64-bit kernel on ext4.

Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Cc: &lt;linux-ext4@vger.kernel.org&gt;
Cc: Mark Lord &lt;lkml@rtr.ca&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Josef Bacik &lt;josef@redhat.com&gt;
Cc: Jan Kara &lt;jack@suse.cz&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@suse.de&gt;

</content>
</entry>
<entry>
<title>sysfs: fix hardlink count on device_move</title>
<updated>2009-08-16T21:26:41Z</updated>
<author>
<name>Peter Oberparleiter</name>
<email>oberpar@linux.vnet.ibm.com</email>
</author>
<published>2009-07-14T15:56:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=16fe15dbef13d99bc137ceedf0c0328316b4cbdf'/>
<id>urn:sha1:16fe15dbef13d99bc137ceedf0c0328316b4cbdf</id>
<content type='text'>
commit 0f58b44582001c8bcdb75f36cf85ebbe5170e959 upstream.

Update directory hardlink count when moving kobjects to a new parent.
Fixes the following problem which occurs when several devices are
moved to the same parent and then unregistered:

&gt; ls -laF /sys/devices/css0/defunct/
&gt; total 0
&gt; drwxr-xr-x 4294967295 root root    0 2009-07-14 17:02 ./
&gt; drwxr-xr-x        114 root root    0 2009-07-14 17:02 ../
&gt; drwxr-xr-x          2 root root    0 2009-07-14 17:01 power/
&gt; -rw-r--r--          1 root root 4096 2009-07-14 17:01 uevent

Signed-off-by: Peter Oberparleiter &lt;oberpar@linux.vnet.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>eCryptfs: parse_tag_3_packet check tag 3 packet encrypted key size (CVE-2009-2407)</title>
<updated>2009-07-30T23:06:12Z</updated>
<author>
<name>Ramon de Carvalho Valle</name>
<email>ramon@risesecurity.org</email>
</author>
<published>2009-07-28T18:58:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=44c470335d131e943fbaa4d34eb42a555591a478'/>
<id>urn:sha1:44c470335d131e943fbaa4d34eb42a555591a478</id>
<content type='text'>
commit f151cd2c54ddc7714e2f740681350476cda03a28 upstream.

The parse_tag_3_packet function does not check if the tag 3 packet contains a
encrypted key size larger than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES.

Signed-off-by: Ramon de Carvalho Valle &lt;ramon@risesecurity.org&gt;
[tyhicks@linux.vnet.ibm.com: Added printk newline and changed goto to out_free]
Signed-off-by: Tyler Hicks &lt;tyhicks@linux.vnet.ibm.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>eCryptfs: Check Tag 11 literal data buffer size (CVE-2009-2406)</title>
<updated>2009-07-30T23:06:12Z</updated>
<author>
<name>Tyler Hicks</name>
<email>tyhicks@linux.vnet.ibm.com</email>
</author>
<published>2009-07-28T18:57:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=77773e094d22e44976a559b03d33726d24b3d817'/>
<id>urn:sha1:77773e094d22e44976a559b03d33726d24b3d817</id>
<content type='text'>
commit 6352a29305373ae6196491e6d4669f301e26492e upstream.

Tag 11 packets are stored in the metadata section of an eCryptfs file to
store the key signature(s) used to encrypt the file encryption key.
After extracting the packet length field to determine the key signature
length, a check is not performed to see if the length would exceed the
key signature buffer size that was passed into parse_tag_11_packet().

Thanks to Ramon de Carvalho Valle for finding this bug using fsfuzzer.

Signed-off-by: Tyler Hicks &lt;tyhicks@linux.vnet.ibm.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>elf: fix one check-after-use</title>
<updated>2009-07-30T23:06:06Z</updated>
<author>
<name>Amerigo Wang</name>
<email>amwang@redhat.com</email>
</author>
<published>2009-07-01T05:06:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=76fc198abd7d734d45a433e4e560521f0c9cacbc'/>
<id>urn:sha1:76fc198abd7d734d45a433e4e560521f0c9cacbc</id>
<content type='text'>
commit e2dbe12557d85d81f4527879499f55681c3cca4f upstream.

Check before use it.

Signed-off-by: WANG Cong &lt;amwang@redhat.com&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Roland McGrath &lt;roland@redhat.com&gt;
Acked-by: James Morris &lt;jmorris@namei.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>jbd: fix race in buffer processing in commit code</title>
<updated>2009-07-02T23:31:33Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2009-06-09T23:26:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c66a1c990f0f9ec38765ca5c54953523326e18d5'/>
<id>urn:sha1:c66a1c990f0f9ec38765ca5c54953523326e18d5</id>
<content type='text'>
commit a61d90d75d0f9e86432c45b496b4b0fbf0fd03dc upstream.

In commit code, we scan buffers attached to a transaction.  During this
scan, we sometimes have to drop j_list_lock and then we recheck whether
the journal buffer head didn't get freed by journal_try_to_free_buffers().
 But checking for buffer_jbd(bh) isn't enough because a new journal head
could get attached to our buffer head.  So add a check whether the journal
head remained the same and whether it's still at the same transaction and
list.

This is a nasty bug and can cause problems like memory corruption (use after
free) or trigger various assertions in JBD code (observed).

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Cc: &lt;linux-ext4@vger.kernel.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@suse.de&gt;

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