<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/fs, branch linux-2.6.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-2.6.17.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-2.6.17.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2006-10-13T18:50:10Z</updated>
<entry>
<title>sysfs: remove duplicated dput in sysfs_update_file</title>
<updated>2006-10-13T18:50:10Z</updated>
<author>
<name>Hidetoshi Seto</name>
<email>seto.hidetoshi@jp.fujitsu.com</email>
</author>
<published>2006-09-29T08:05:23Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=91d72bbd4cc7a04e3c2402da85385a2fb377575a'/>
<id>urn:sha1:91d72bbd4cc7a04e3c2402da85385a2fb377575a</id>
<content type='text'>
Following function can drops d_count twice against one reference
by lookup_one_len.

&lt;SOURCE&gt;
/**
 * sysfs_update_file - update the modified timestamp on an object attribute.
 * @kobj: object we're acting for.
 * @attr: attribute descriptor.
 */
int sysfs_update_file(struct kobject * kobj, const struct attribute * attr)
{
        struct dentry * dir = kobj-&gt;dentry;
        struct dentry * victim;
        int res = -ENOENT;

        mutex_lock(&amp;dir-&gt;d_inode-&gt;i_mutex);
        victim = lookup_one_len(attr-&gt;name, dir, strlen(attr-&gt;name));
        if (!IS_ERR(victim)) {
                /* make sure dentry is really there */
                if (victim-&gt;d_inode &amp;&amp;
                    (victim-&gt;d_parent-&gt;d_inode == dir-&gt;d_inode)) {
                        victim-&gt;d_inode-&gt;i_mtime = CURRENT_TIME;
                        fsnotify_modify(victim);

                        /**
                         * Drop reference from initial sysfs_get_dentry().
                         */
                        dput(victim);
                        res = 0;
                } else
                        d_drop(victim);

                /**
                 * Drop the reference acquired from sysfs_get_dentry() above.
                 */
                dput(victim);
        }
        mutex_unlock(&amp;dir-&gt;d_inode-&gt;i_mutex);

        return res;
}
&lt;/SOURCE&gt;

PCI-hotplug (drivers/pci/hotplug/pci_hotplug_core.c) is only user of
this function. I confirmed that dentry of /sys/bus/pci/slots/XXX/*
have negative d_count value.

This patch removes unnecessary dput().

Signed-off-by: Hidetoshi Seto &lt;seto.hidetoshi@jp.fujitsu.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ext3 sequential read regression fix</title>
<updated>2006-10-13T18:50:10Z</updated>
<author>
<name>Badari Pulavarty</name>
<email>pbadari@us.ibm.com</email>
</author>
<published>2006-09-15T16:07:18Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=cfb3f12260beaf5dc8f765a1c191822896019d8a'/>
<id>urn:sha1:cfb3f12260beaf5dc8f765a1c191822896019d8a</id>
<content type='text'>
ext3-get-blocks support caused ~20% degrade in Sequential read
performance (tiobench). Problem is with marking the buffer boundary
so IO can be submitted right away. Here is the patch to fix it.

2.6.18-rc6:
</content>
</entry>
<entry>
<title>NFS: More page cache revalidation fixups</title>
<updated>2006-10-13T18:50:10Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-09-08T00:09:43Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d3ea6449776ebc644c587b4e4be9b92840b3c5d4'/>
<id>urn:sha1:d3ea6449776ebc644c587b4e4be9b92840b3c5d4</id>
<content type='text'>
Whenever the directory changes, we want to make sure that we always
invalidate its page cache. Fix up update_changeattr() and
nfs_mark_for_revalidate() so that they do so.

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>LOCKD: Fix a deadlock in nlm_traverse_files()</title>
<updated>2006-10-13T18:50:10Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2006-09-08T00:09:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=387436208278da65b5715e0b3f96a8a3b5a4ed08'/>
<id>urn:sha1:387436208278da65b5715e0b3f96a8a3b5a4ed08</id>
<content type='text'>
nlm_traverse_files() is not allowed to hold the nlm_file_mutex while calling
nlm_inspect file, since it may end up calling nlm_release_file() when
releaseing the blocks.

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>NFS: Fix a potential deadlock in nfs_release_page</title>
<updated>2006-10-13T18:50:09Z</updated>
<author>
<name>Nikita Danilov</name>
<email>nikita@clusterfs.com</email>
</author>
<published>2006-09-08T00:09:36Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=18807ffe4e541639abae40dcd2ebd7a20e9078d6'/>
<id>urn:sha1:18807ffe4e541639abae40dcd2ebd7a20e9078d6</id>
<content type='text'>
nfs_wb_page() waits on request completion and, as a result, is not safe to be
called from nfs_release_page() invoked by VM scanner as part of GFP_NOFS
allocation. Fix possible deadlock by analyzing gfp mask and refusing to
release page if __GFP_FS is not set.

Signed-off-by: Nikita Danilov &lt;danilov@gmail.com&gt;
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>binfmt_elf: fix checks for bad address</title>
<updated>2006-09-08T21:51:39Z</updated>
<author>
<name>Ernie Petrides</name>
<email>petrides@redhat.com</email>
</author>
<published>2006-08-26T14:20:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4be6107d35a5b5f8eac9b92eef1e243a033a3f39'/>
<id>urn:sha1:4be6107d35a5b5f8eac9b92eef1e243a033a3f39</id>
<content type='text'>
Fix check for bad address; use macro instead of open-coding two checks.

Taken from RHEL4 kernel update.

  For background, the BAD_ADDR() macro should return TRUE if the address is
  TASK_SIZE, because that's the lowest address that is *not* valid for
  user-space mappings.  The macro was correct in binfmt_aout.c but was wrong
  for the "equal to" case in binfmt_elf.c.  There were two in-line validations
  of user-space addresses in binfmt_elf.c, which have been appropriately
  converted to use the corrected BAD_ADDR() macro in the patch you posted
  yesterday.  Note that the size checks against TASK_SIZE are okay as coded.

  The additional changes that I propose are below.  These are in the error
  paths for bad ELF entry addresses once load_elf_binary() has already
  committed to exec'ing the new image (following the tearing down of the
  task's original address space).

  The 1st hunk deals with the interp-side of the outer "if".  There were two
  problems here.  The printk() should be removed because this path can be
  triggered at will by a bogus interpreter image created and used by a
  malicious user.  Further, the error code should not be ENOEXEC, because that
  causes the loop in search_binary_handler() to continue trying other exec
  handlers (twice, in fact).  But it's too late for this to work correctly,
  because the user address space has already been torn down, and an exec()
  failure cannot be returned to the user code because the code no longer
  exists.  The only recovery is to force a SIGSEGV, but it's best to terminate
  the search loop immediately.  I somewhat arbitrarily chose EINVAL as a
  fallback error code, but any error returned by load_elf_interp() will
  override that (but this value will never be seen by user-space).

  The 2nd hunk deals with the non-interp-side of the outer "if".  There were
  two problems here as well.  The SIGSEGV needs to be forced, because a prior
  sigaction() syscall might have set the associated disposition to SIG_IGN.
  And the ENOEXEC should be changed to EINVAL as described above.

Signed-off-by: Chuck Ebbert &lt;76306.1226@compuserve.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>fcntl(F_SETSIG) fix</title>
<updated>2006-09-08T21:51:38Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@fys.uio.no</email>
</author>
<published>2006-08-29T06:15:54Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f4eb9f37abad092ac27fabc7d451d6980fff8fb1'/>
<id>urn:sha1:f4eb9f37abad092ac27fabc7d451d6980fff8fb1</id>
<content type='text'>
fcntl(F_SETSIG) no longer works on leases because
lease_release_private_callback() gets called as the lease is copied in
order to initialise it.

The problem is that lease_alloc() performs an unnecessary initialisation,
which sets the lease_manager_ops.  Avoid the problem by allocating the
target lease structure using locks_alloc_lock().

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

</content>
</entry>
<entry>
<title>Have ext2 reject file handles with bad inode numbers early.</title>
<updated>2006-09-08T21:51:37Z</updated>
<author>
<name>Neil Brown</name>
<email>neilb@suse.de</email>
</author>
<published>2006-08-04T00:53:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2336231e06979e7073132c22b121c34123f295a6'/>
<id>urn:sha1:2336231e06979e7073132c22b121c34123f295a6</id>
<content type='text'>
This prevents bad inode numbers from triggering errors in
ext2_get_inode.


Signed-off-by: Neil Brown &lt;neilb@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Fix BeFS slab corruption</title>
<updated>2006-08-23T21:13:30Z</updated>
<author>
<name>Diego Calleja</name>
<email>diegocg@gmail.com</email>
</author>
<published>2006-08-05T19:14:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2fc58b11d73cc8baafa61b70e4c749d466f92b2a'/>
<id>urn:sha1:2fc58b11d73cc8baafa61b70e4c749d466f92b2a</id>
<content type='text'>
In bugzilla #6941, Jens Kilian reported:

"The function befs_utf2nls (in fs/befs/linuxvfs.c) writes a 0 byte past the
end of a block of memory allocated via kmalloc(), leading to memory
corruption.  This happens only for filenames which are pure ASCII and a
multiple of 4 bytes in length.  [...]

Without DEBUG_SLAB, this leads to further corruption and hard lockups; I
believe this is the bug which has made kernels later than 2.6.8 unusable
for me.  (This must be due to changes in memory management, the bug has
been in the BeFS driver since the time it was introduced (AFAICT).)

Steps to reproduce:
Create a directory (in BeOS, naturally :-) with files named, e.g.,
"1", "22", "333", "4444", ...  Mount it in Linux and do an "ls" or "find""

This patch implements the suggested fix. Credits to Jens Kilian for
debugging the problem and finding the right fix.

Signed-off-by: Diego Calleja &lt;diegocg@gmail.com&gt;
Cc: Jens Kilian &lt;jjk@acm.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Have ext3 reject file handles with bad inode numbers early</title>
<updated>2006-08-23T21:13:30Z</updated>
<author>
<name>Eric Sandeen</name>
<email>esandeen@redhat.com</email>
</author>
<published>2006-08-04T15:35:34Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=bd2a1e115cf239c708747bae1cf1c0757686af50'/>
<id>urn:sha1:bd2a1e115cf239c708747bae1cf1c0757686af50</id>
<content type='text'>
blatantly ripped off from Neil Brown's ext2 patch.


Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Acked-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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