<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v2.6.29.1</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v2.6.29.1</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v2.6.29.1'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-04-02T20:55:18Z</updated>
<entry>
<title>fuse: fix fuse_file_lseek returning with lock held</title>
<updated>2009-04-02T20:55:18Z</updated>
<author>
<name>Dan Carpenter</name>
<email>error27@gmail.com</email>
</author>
<published>2009-03-30T18:50:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=84a31107de6deee382e98b911e0fc7263427a7a8'/>
<id>urn:sha1:84a31107de6deee382e98b911e0fc7263427a7a8</id>
<content type='text'>
upstream commit: 5291658d87ac1ae60418e79e7b6bad7d5f595e0c

This bug was found with smatch (http://repo.or.cz/w/smatch.git/).  If
we return directly the inode-&gt;i_mutex lock doesn't get released.

Signed-off-by: Dan Carpenter &lt;error27@gmail.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
CC: stable@kernel.org
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>CIFS: Fix memory overwrite when saving nativeFileSystem field during mount</title>
<updated>2009-04-02T20:55:17Z</updated>
<author>
<name>Steve French</name>
<email>sfrench@us.ibm.com</email>
</author>
<published>2009-03-26T23:05:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=15bd8021d870d2c4fbf8c16578d72d03cfddd3a7'/>
<id>urn:sha1:15bd8021d870d2c4fbf8c16578d72d03cfddd3a7</id>
<content type='text'>
upstream commit: b363b3304bcf68c4541683b2eff70b29f0446a5b

CIFS can allocate a few bytes to little for the nativeFileSystem field
during tree connect response processing during mount.  This can result
in a "Redzone overwritten" message to be logged.

Signed-off-by: Sridhar Vinay &lt;vinaysridhar@in.ibm.com&gt;
Acked-by: Shirish Pargaonkar &lt;shirishp@us.ibm.com&gt;
CC: Stable &lt;stable@kernel.org&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
[chrisw: minor backport to CHANGES file]
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>cifs: fix buffer format byte on NT Rename/hardlink</title>
<updated>2009-04-02T20:55:16Z</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@tupile.poochiereds.net</email>
</author>
<published>2009-03-26T23:05:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=46d2a92135c95066364a8603297b637314a85090'/>
<id>urn:sha1:46d2a92135c95066364a8603297b637314a85090</id>
<content type='text'>
upstream commit: fcc7c09d94be7b75c9ea2beb22d0fae191c6b4b9

Discovered at Connnectathon 2009...

The buffer format byte and the pad are transposed in NT_RENAME calls
(which are used to set hardlinks). Most servers seem to ignore this
fact, but NetApp filers throw back an error due to this problem. This
patch fixes it.

CC: Stable &lt;stable@kernel.org&gt;
Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: Steve French &lt;sfrench@us.ibm.com&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>Update my email address</title>
<updated>2009-03-22T18:28:37Z</updated>
<author>
<name>Gertjan van Wingerde</name>
<email>gwingerde@gmail.com</email>
</author>
<published>2009-03-21T22:18:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f762dd68218665bb87d4e4a0eeac86fde7530293'/>
<id>urn:sha1:f762dd68218665bb87d4e4a0eeac86fde7530293</id>
<content type='text'>
Update all previous incarnations of my email address to the correct one.

Signed-off-by: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>eCryptfs: NULL crypt_stat dereference during lookup</title>
<updated>2009-03-22T18:20:43Z</updated>
<author>
<name>Tyler Hicks</name>
<email>tyhicks@linux.vnet.ibm.com</email>
</author>
<published>2009-03-20T07:23:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2aac0cf88681bfa092f731553bc7fbd23516be73'/>
<id>urn:sha1:2aac0cf88681bfa092f731553bc7fbd23516be73</id>
<content type='text'>
If ecryptfs_encrypted_view or ecryptfs_xattr_metadata were being
specified as mount options, a NULL pointer dereference of crypt_stat
was possible during lookup.

This patch moves the crypt_stat assignment into
ecryptfs_lookup_and_interpose_lower(), ensuring that crypt_stat
will not be NULL before we attempt to dereference it.

Thanks to Dan Carpenter and his static analysis tool, smatch, for
finding this bug.

Signed-off-by: Tyler Hicks &lt;tyhicks@linux.vnet.ibm.com&gt;
Acked-by: Dustin Kirkland &lt;kirkland@canonical.com&gt;
Cc: Dan Carpenter &lt;error27@gmail.com&gt;
Cc: Serge Hallyn &lt;serue@us.ibm.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>eCryptfs: Allocate a variable number of pages for file headers</title>
<updated>2009-03-22T18:20:43Z</updated>
<author>
<name>Tyler Hicks</name>
<email>tyhicks@linux.vnet.ibm.com</email>
</author>
<published>2009-03-20T06:25:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8faece5f906725c10e7a1f6caf84452abadbdc7b'/>
<id>urn:sha1:8faece5f906725c10e7a1f6caf84452abadbdc7b</id>
<content type='text'>
When allocating the memory used to store the eCryptfs header contents, a
single, zeroed page was being allocated with get_zeroed_page().
However, the size of an eCryptfs header is either PAGE_CACHE_SIZE or
ECRYPTFS_MINIMUM_HEADER_EXTENT_SIZE (8192), whichever is larger, and is
stored in the file's private_data-&gt;crypt_stat-&gt;num_header_bytes_at_front
field.

ecryptfs_write_metadata_to_contents() was using
num_header_bytes_at_front to decide how many bytes should be written to
the lower filesystem for the file header.  Unfortunately, at least 8K
was being written from the page, despite the chance of the single,
zeroed page being smaller than 8K.  This resulted in random areas of
kernel memory being written between the 0x1000 and 0x1FFF bytes offsets
in the eCryptfs file headers if PAGE_SIZE was 4K.

This patch allocates a variable number of pages, calculated with
num_header_bytes_at_front, and passes the number of allocated pages
along to ecryptfs_write_metadata_to_contents().

Thanks to Florian Streibelt for reporting the data leak and working with
me to find the problem.  2.6.28 is the only kernel release with this
vulnerability.  Corresponds to CVE-2009-0787

Signed-off-by: Tyler Hicks &lt;tyhicks@linux.vnet.ibm.com&gt;
Acked-by: Dustin Kirkland &lt;kirkland@canonical.com&gt;
Reviewed-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Reviewed-by: Eugene Teo &lt;eugeneteo@kernel.sg&gt;
Cc: Greg KH &lt;greg@kroah.com&gt;
Cc: dann frazier &lt;dannf@dannf.org&gt;
Cc: Serge E. Hallyn &lt;serue@us.ibm.com&gt;
Cc: Florian Streibelt &lt;florian@f-streibelt.de&gt;
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>aio: lookup_ioctx can return the wrong value when looking up a bogus context</title>
<updated>2009-03-19T22:57:18Z</updated>
<author>
<name>Jeff Moyer</name>
<email>jmoyer@redhat.com</email>
</author>
<published>2009-03-19T00:04:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=65c24491b4fef017c64e39ec64384fde5e05e0a0'/>
<id>urn:sha1:65c24491b4fef017c64e39ec64384fde5e05e0a0</id>
<content type='text'>
The libaio test harness turned up a problem whereby lookup_ioctx on a
bogus io context was returning the 1 valid io context from the list
(harness/cases/3.p).

Because of that, an extra put_iocontext was done, and when the process
exited, it hit a BUG_ON in the put_iocontext macro called from exit_aio
(since we expect a users count of 1 and instead get 0).

The problem was introduced by "aio: make the lookup_ioctx() lockless"
(commit abf137dd7712132ee56d5b3143c2ff61a72a5faa).

Thanks to Zach for pointing out that hlist_for_each_entry_rcu will not
return with a NULL tpos at the end of the loop, even if the entry was
not found.

Signed-off-by: Jeff Moyer &lt;jmoyer@redhat.com&gt;
Acked-by: Zach Brown &lt;zach.brown@oracle.com&gt;
Acked-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
Cc: Benjamin LaHaise &lt;bcrl@kvack.org&gt;
Cc: &lt;stable@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;
</content>
</entry>
<entry>
<title>eventfd: remove fput() call from possible IRQ context</title>
<updated>2009-03-19T22:57:18Z</updated>
<author>
<name>Davide Libenzi</name>
<email>davidel@xmailserver.org</email>
</author>
<published>2009-03-19T00:04:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=87c3a86e1c220121d0ced59d1a71e78ed9abc6dd'/>
<id>urn:sha1:87c3a86e1c220121d0ced59d1a71e78ed9abc6dd</id>
<content type='text'>
Remove a source of fput() call from inside IRQ context.  Myself, like Eric,
wasn't able to reproduce an fput() call from IRQ context, but Jeff said he was
able to, with the attached test program.  Independently from this, the bug is
conceptually there, so we might be better off fixing it.  This patch adds an
optimization similar to the one we already do on -&gt;ki_filp, on -&gt;ki_eventfd.
Playing with -&gt;f_count directly is not pretty in general, but the alternative
here would be to add a brand new delayed fput() infrastructure, that I'm not
sure is worth it.

Signed-off-by: Davide Libenzi &lt;davidel@xmailserver.org&gt;
Cc: Benjamin LaHaise &lt;bcrl@kvack.org&gt;
Cc: Trond Myklebust &lt;trond.myklebust@fys.uio.no&gt;
Cc: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Signed-off-by: Jeff Moyer &lt;jmoyer@redhat.com&gt;
Cc: Zach Brown &lt;zach.brown@oracle.com&gt;
Cc: &lt;stable@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;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable</title>
<updated>2009-03-19T21:49:55Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-03-19T21:49:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fe2fd6cc346cc7199a52250e8fb594852b2a321b'/>
<id>urn:sha1:fe2fd6cc346cc7199a52250e8fb594852b2a321b</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
  Btrfs: Clear space_info full when adding new devices
  Btrfs: Fix locking around adding new space_info
</content>
</entry>
<entry>
<title>Fix race in create_empty_buffers() vs __set_page_dirty_buffers()</title>
<updated>2009-03-19T18:32:05Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-03-19T18:32:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a8e7d49aa7be728c4ae241a75a2a124cdcabc0c5'/>
<id>urn:sha1:a8e7d49aa7be728c4ae241a75a2a124cdcabc0c5</id>
<content type='text'>
Nick Piggin noticed this (very unlikely) race between setting a page
dirty and creating the buffers for it - we need to hold the mapping
private_lock until we've set the page dirty bit in order to make sure
that create_empty_buffers() might not build up a set of buffers without
the dirty bits set when the page is dirty.

I doubt anybody has ever hit this race (and it didn't solve the issue
Nick was looking at), but as Nick says: "Still, it does appear to solve
a real race, which we should close."

Acked-by: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
