<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v2.6.26.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v2.6.26.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v2.6.26.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2008-08-06T16:03:23Z</updated>
<entry>
<title>vfs: fix lookup on deleted directory</title>
<updated>2008-08-06T16:03:23Z</updated>
<author>
<name>Miklos Szeredi</name>
<email>mszeredi@suse.cz</email>
</author>
<published>2008-07-02T19:30:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=efd5285ead8cccc76e3a978ffdeadaf86bf7aa17'/>
<id>urn:sha1:efd5285ead8cccc76e3a978ffdeadaf86bf7aa17</id>
<content type='text'>
commit d70b67c8bc72ee23b55381bd6a884f4796692f77 upstream

Lookup can install a child dentry for a deleted directory.  This keeps
the directory dentry alive, and the inode pinned in the cache and on
disk, even after all external references have gone away.

This isn't a big problem normally, since memory pressure or umount
will clear out the directory dentry and its children, releasing the
inode.  But for UBIFS this causes problems because its orphan area can
overflow.

Fix this by returning ENOENT for all lookups on a S_DEAD directory
before creating a child dentry.

Thanks to Zoltan Sogor for noticing this while testing UBIFS, and
Artem for the excellent analysis of the problem and testing.

Reported-by: Artem Bityutskiy &lt;Artem.Bityutskiy@nokia.com&gt;
Tested-by: Artem Bityutskiy &lt;Artem.Bityutskiy@nokia.com&gt;
Signed-off-by: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>jbd: fix race between free buffer and commit transaction</title>
<updated>2008-08-06T16:03:17Z</updated>
<author>
<name>Mingming Cao</name>
<email>cmm@us.ibm.com</email>
</author>
<published>2008-07-25T08:46:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ec717c81ad0be452c5be770c10fd259fec486a48'/>
<id>urn:sha1:ec717c81ad0be452c5be770c10fd259fec486a48</id>
<content type='text'>
commit 3f31fddfa26b7594b44ff2b34f9a04ba409e0f91 upstream

journal_try_to_free_buffers() could race with jbd commit transaction when
the later is holding the buffer reference while waiting for the data
buffer to flush to disk.  If the caller of journal_try_to_free_buffers()
request tries hard to release the buffers, it will treat the failure as
error and return back to the caller.  We have seen the directo IO failed
due to this race.  Some of the caller of releasepage() also expecting the
buffer to be dropped when passed with GFP_KERNEL mask to the
releasepage()-&gt;journal_try_to_free_buffers().

With this patch, if the caller is passing the __GFP_WAIT and __GFP_FS to
indicating this call could wait, in case of try_to_free_buffers() failed,
let's waiting for journal_commit_transaction() to finish commit the
current committing transaction, then try to free those buffers again.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Mingming Cao &lt;cmm@us.ibm.com&gt;
Reviewed-by: Badari Pulavarty &lt;pbadari@us.ibm.com&gt;
Acked-by: 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>NFS: Ensure we zap only the access and acl caches when setting new acls</title>
<updated>2008-08-06T16:03:16Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2008-06-11T21:39:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=daedfbe2a67628a40076a6c75fb945c60f608a2e'/>
<id>urn:sha1:daedfbe2a67628a40076a6c75fb945c60f608a2e</id>
<content type='text'>
commit f41f741838480aeaa3a189cff6e210503cf9c42d upstream

...and ensure that we obey the NFS_INO_INVALID_ACL flag when retrieving the
acls.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>romfs_readpage: don't report errors for pages beyond i_size</title>
<updated>2008-08-06T16:03:09Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-07-30T21:26:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=edc6e0f91ad1e46538a4f1d61ab54d9841f7ff95'/>
<id>urn:sha1:edc6e0f91ad1e46538a4f1d61ab54d9841f7ff95</id>
<content type='text'>
commit 0056e65f9e28d83ee1a3fb4f7d0041e838f03c34 upstream

We zero-fill them like we are supposed to, and that's all fine.  It's
only an error if the 'romfs_copyfrom()' routine isn't able to fill the
data that is supposed to be there.

Most of the patch is really just re-organizing the code a bit, and using
separate variables for the error value and for how much of the page we
actually filled from the filesystem.

Reported-and-tested-by: Chris Fester &lt;cfester@wms.com&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Matt Waddel &lt;matt.waddel@freescale.com&gt;
Cc: Greg Ungerer &lt;gerg@snapgear.com&gt;
Signed-of-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>VFS: increase pseudo-filesystem block size to PAGE_SIZE</title>
<updated>2008-08-01T19:43:12Z</updated>
<author>
<name>Alex Nixon</name>
<email>alex.nixon@citrix.com</email>
</author>
<published>2008-07-30T18:20:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4281b61fbd503a5ebe821e155dbe9294d56d3e05'/>
<id>urn:sha1:4281b61fbd503a5ebe821e155dbe9294d56d3e05</id>
<content type='text'>
commit 3971e1a917548977cff71418a7c3575ffbc9571f upstream

This commit:

    commit ba52de123d454b57369f291348266d86f4b35070
    Author: Theodore Ts'o &lt;tytso@mit.edu&gt;
    Date:   Wed Sep 27 01:50:49 2006 -0700

        [PATCH] inode-diet: Eliminate i_blksize from the inode structure

caused the block size used by pseudo-filesystems to decrease from
PAGE_SIZE to 1024 leading to a doubling of the number of context switches
during a kernbench run.

Signed-off-by: Alex Nixon &lt;Alex.Nixon@citrix.com&gt;
Cc: Andi Kleen &lt;andi@firstfloor.org&gt;
Cc: Jeremy Fitzhardinge &lt;jeremy@goop.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Ian Campbell &lt;Ian.Campbell@eu.citrix.com&gt;
Cc: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Hugh Dickins &lt;hugh@veritas.com&gt;
Cc: Jens Axboe &lt;jens.axboe@oracle.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>eCryptfs: use page_alloc not kmalloc to get a page of memory</title>
<updated>2008-08-01T19:43:10Z</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2008-07-29T02:50:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=45ff7b34de5199730b9191e976b29008e676fc2f'/>
<id>urn:sha1:45ff7b34de5199730b9191e976b29008e676fc2f</id>
<content type='text'>
commit 7fcba054373d5dfc43d26e243a5c9b92069972ee upstream
Date: Mon, 28 Jul 2008 15:46:39 -0700
Subject: eCryptfs: use page_alloc not kmalloc to get a page of memory

With SLUB debugging turned on in 2.6.26, I was getting memory corruption
when testing eCryptfs.  The root cause turned out to be that eCryptfs was
doing kmalloc(PAGE_CACHE_SIZE); virt_to_page() and treating that as a nice
page-aligned chunk of memory.  But at least with SLUB debugging on, this
is not always true, and the page we get from virt_to_page does not
necessarily match the PAGE_CACHE_SIZE worth of memory we got from kmalloc.

My simple testcase was 2 loops doing "rm -f fileX; cp /tmp/fileX ." for 2
different multi-megabyte files.  With this change I no longer see the
corruption.

Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Acked-by: Michael Halcrow &lt;mhalcrow@us.ibm.com&gt;
Acked-by: Rik van Riel &lt;riel@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>proc: fix /proc/*/pagemap some more</title>
<updated>2008-08-01T19:43:04Z</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2008-07-22T20:05:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=81952a2391da91d8ff35c96b31f051f5242dfc1b'/>
<id>urn:sha1:81952a2391da91d8ff35c96b31f051f5242dfc1b</id>
<content type='text'>
commit ee1e6ab6056a8b9c19377257002da98b83819531 upstream

struct pagemap_walk was placed on stack, some hooks are initialized, the
rest (-&gt;pgd_entry, -&gt;pud_entry, -&gt;pte_entry) are valid but junk.

Reported-by: Eric Sesterhenn &lt;snakebyte@gmx.de&gt;
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: "Vegard Nossum" &lt;vegard.nossum@gmail.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>isofs: fix minor filesystem corruption</title>
<updated>2008-08-01T19:42:58Z</updated>
<author>
<name>Adam Greenblatt</name>
<email>adam.greenblatt@gmail.com</email>
</author>
<published>2008-07-25T18:15:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c7cc70b61a1cabaf4c51b0324638042f706665d6'/>
<id>urn:sha1:c7cc70b61a1cabaf4c51b0324638042f706665d6</id>
<content type='text'>
commit c0a1633b6201ef79e31b7da464d44fdf5953054d upstream

Some iso9660 images contain files with rockridge data that is either
incorrect or incompletely parsed.  Prior to commit
f2966632a134e865db3c819346a1dc7d96e05309 ("[PATCH] rock: handle directory
overflows") (included with kernel 2.6.13) the kernel ignored the rockridge
data for these files, while still allowing the files to be accessed under
their non-rockridge names.  That commit inadvertently changed things so
that files with invalid rockridge data could not be accessed at all.  (I
ran across the problem when comparing some old CDs with hard disk copies I
had made long ago under kernel 2.4: a few of the files on the hard disk
copies were no longer visible on the CDs.)

This change reverts to the pre-2.6.13 behavior.

Signed-off-by: Adam Greenblatt &lt;adam.greenblatt@gmail.com&gt;
Reviewed-by: Pekka Enberg &lt;penberg@cs.helsinki.fi&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>quota: fix possible infinite loop in quota code</title>
<updated>2008-08-01T19:42:58Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2008-07-25T18:15:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6b918773965623828a8662cba0305e8f58010f03'/>
<id>urn:sha1:6b918773965623828a8662cba0305e8f58010f03</id>
<content type='text'>
commit b48d380541f634663b71766005838edbb7261685 upstream

When quota structure is going to be dropped and it is dirty, quota code tries
to write it.  If the write fails for some reason (e.  g.  transaction cannot
be started because the journal is aborted), we try writing again and again and
again...  Fix the problem by clearing the dirty bit even if the write failed.

(akpm: for 2.6.27, 2.6.26.x and 2.6.25.x)

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Reviewed-by: dingdinghua &lt;dingdinghua85@gmail.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>cifs: fix wksidarr declaration to be big-endian friendly</title>
<updated>2008-07-12T21:33:42Z</updated>
<author>
<name>Jeff Layton</name>
<email>jlayton@redhat.com</email>
</author>
<published>2008-07-12T20:48:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=536abdb0802f3fac1b217530741853843d63c281'/>
<id>urn:sha1:536abdb0802f3fac1b217530741853843d63c281</id>
<content type='text'>
The current definition of wksidarr works fine on little endian arches
(since cpu_to_le32 is a no-op there), but on big-endian arches, it fails
to compile with this error:

error: braced-group within expression allowed only inside a function

The problem is that this static declaration has cpu_to_le32 embedded
within it, and that expands into a function macro.  We need to use
__constant_cpu_to_le32() instead.

Signed-off-by: Jeff Layton &lt;jlayton@redhat.com&gt;
Cc: Steven French &lt;sfrench@us.ibm.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>
</feed>
