<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git, branch v2.6.31.8</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v2.6.31.8</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v2.6.31.8'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2009-12-14T16:14:26+00:00</updated>
<entry>
<title>Linux 2.6.31.8</title>
<updated>2009-12-14T16:14:26+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2009-12-14T16:14:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=047e5f383505cda6606b73d49a857895de5e2c48'/>
<id>urn:sha1:047e5f383505cda6606b73d49a857895de5e2c48</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)</title>
<updated>2009-12-14T16:08:12+00:00</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2009-12-10T23:51:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=26973f8bd6dfee21209ef3d521c286ee485ef2a8'/>
<id>urn:sha1:26973f8bd6dfee21209ef3d521c286ee485ef2a8</id>
<content type='text'>
(cherry picked from commit fab3a549e204172236779f502eccb4f9bf0dc87d)

Fix the following potential circular locking dependency between
mm-&gt;mmap_sem and ei-&gt;i_data_sem:

    =======================================================
    [ INFO: possible circular locking dependency detected ]
    2.6.32-04115-gec044c5 #37
    -------------------------------------------------------
    ureadahead/1855 is trying to acquire lock:
     (&amp;mm-&gt;mmap_sem){++++++}, at: [&lt;ffffffff81107224&gt;] might_fault+0x5c/0xac

    but task is already holding lock:
     (&amp;ei-&gt;i_data_sem){++++..}, at: [&lt;ffffffff811be1fd&gt;] ext4_fiemap+0x11b/0x159

    which lock already depends on the new lock.

    the existing dependency chain (in reverse order) is:

    -&gt; #1 (&amp;ei-&gt;i_data_sem){++++..}:
           [&lt;ffffffff81099bfa&gt;] __lock_acquire+0xb67/0xd0f
           [&lt;ffffffff81099e7e&gt;] lock_acquire+0xdc/0x102
           [&lt;ffffffff81516633&gt;] down_read+0x51/0x84
           [&lt;ffffffff811a2414&gt;] ext4_get_blocks+0x50/0x2a5
           [&lt;ffffffff811a3453&gt;] ext4_get_block+0xab/0xef
           [&lt;ffffffff81154f39&gt;] do_mpage_readpage+0x198/0x48d
           [&lt;ffffffff81155360&gt;] mpage_readpages+0xd0/0x114
           [&lt;ffffffff811a104b&gt;] ext4_readpages+0x1d/0x1f
           [&lt;ffffffff810f8644&gt;] __do_page_cache_readahead+0x12f/0x1bc
           [&lt;ffffffff810f86f2&gt;] ra_submit+0x21/0x25
           [&lt;ffffffff810f0cfd&gt;] filemap_fault+0x19f/0x32c
           [&lt;ffffffff81107b97&gt;] __do_fault+0x55/0x3a2
           [&lt;ffffffff81109db0&gt;] handle_mm_fault+0x327/0x734
           [&lt;ffffffff8151aaa9&gt;] do_page_fault+0x292/0x2aa
           [&lt;ffffffff81518205&gt;] page_fault+0x25/0x30
           [&lt;ffffffff812a34d8&gt;] clear_user+0x38/0x3c
           [&lt;ffffffff81167e16&gt;] padzero+0x20/0x31
           [&lt;ffffffff81168b47&gt;] load_elf_binary+0x8bc/0x17ed
           [&lt;ffffffff81130e95&gt;] search_binary_handler+0xc2/0x259
           [&lt;ffffffff81166d64&gt;] load_script+0x1b8/0x1cc
           [&lt;ffffffff81130e95&gt;] search_binary_handler+0xc2/0x259
           [&lt;ffffffff8113255f&gt;] do_execve+0x1ce/0x2cf
           [&lt;ffffffff81027494&gt;] sys_execve+0x43/0x5a
           [&lt;ffffffff8102918a&gt;] stub_execve+0x6a/0xc0

    -&gt; #0 (&amp;mm-&gt;mmap_sem){++++++}:
           [&lt;ffffffff81099aa4&gt;] __lock_acquire+0xa11/0xd0f
           [&lt;ffffffff81099e7e&gt;] lock_acquire+0xdc/0x102
           [&lt;ffffffff81107251&gt;] might_fault+0x89/0xac
           [&lt;ffffffff81139382&gt;] fiemap_fill_next_extent+0x95/0xda
           [&lt;ffffffff811bcb43&gt;] ext4_ext_fiemap_cb+0x138/0x157
           [&lt;ffffffff811be069&gt;] ext4_ext_walk_space+0x178/0x1f1
           [&lt;ffffffff811be21e&gt;] ext4_fiemap+0x13c/0x159
           [&lt;ffffffff811390e6&gt;] do_vfs_ioctl+0x348/0x4d6
           [&lt;ffffffff811392ca&gt;] sys_ioctl+0x56/0x79
           [&lt;ffffffff81028cb2&gt;] system_call_fastpath+0x16/0x1b

    other info that might help us debug this:

    1 lock held by ureadahead/1855:
     #0:  (&amp;ei-&gt;i_data_sem){++++..}, at: [&lt;ffffffff811be1fd&gt;] ext4_fiemap+0x11b/0x159

    stack backtrace:
    Pid: 1855, comm: ureadahead Not tainted 2.6.32-04115-gec044c5 #37
    Call Trace:
     [&lt;ffffffff81098c70&gt;] print_circular_bug+0xa8/0xb7
     [&lt;ffffffff81099aa4&gt;] __lock_acquire+0xa11/0xd0f
     [&lt;ffffffff8102f229&gt;] ? sched_clock+0x9/0xd
     [&lt;ffffffff81099e7e&gt;] lock_acquire+0xdc/0x102
     [&lt;ffffffff81107224&gt;] ? might_fault+0x5c/0xac
     [&lt;ffffffff81107251&gt;] might_fault+0x89/0xac
     [&lt;ffffffff81107224&gt;] ? might_fault+0x5c/0xac
     [&lt;ffffffff81124b44&gt;] ? __kmalloc+0x13b/0x18c
     [&lt;ffffffff81139382&gt;] fiemap_fill_next_extent+0x95/0xda
     [&lt;ffffffff811bcb43&gt;] ext4_ext_fiemap_cb+0x138/0x157
     [&lt;ffffffff811bca0b&gt;] ? ext4_ext_fiemap_cb+0x0/0x157
     [&lt;ffffffff811be069&gt;] ext4_ext_walk_space+0x178/0x1f1
     [&lt;ffffffff811be21e&gt;] ext4_fiemap+0x13c/0x159
     [&lt;ffffffff81107224&gt;] ? might_fault+0x5c/0xac
     [&lt;ffffffff811390e6&gt;] do_vfs_ioctl+0x348/0x4d6
     [&lt;ffffffff8129f6d0&gt;] ? __up_read+0x8d/0x95
     [&lt;ffffffff81517fb5&gt;] ? retint_swapgs+0x13/0x1b
     [&lt;ffffffff811392ca&gt;] sys_ioctl+0x56/0x79
     [&lt;ffffffff81028cb2&gt;] system_call_fastpath+0x16/0x1b

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>signal: Fix alternate signal stack check</title>
<updated>2009-12-14T16:08:11+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>sebastian@breakpoint.cc</email>
</author>
<published>2009-10-25T14:37:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=59cebab12f5dd741ae565ed242f1f12790d9c4ba'/>
<id>urn:sha1:59cebab12f5dd741ae565ed242f1f12790d9c4ba</id>
<content type='text'>
commit 2a855dd01bc1539111adb7233f587c5c468732ac upstream.

All architectures in the kernel increment/decrement the stack pointer
before storing values on the stack.

On architectures which have the stack grow down sas_ss_sp == sp is not
on the alternate signal stack while sas_ss_sp + sas_ss_size == sp is
on the alternate signal stack.

On architectures which have the stack grow up sas_ss_sp == sp is on
the alternate signal stack while sas_ss_sp + sas_ss_size == sp is not
on the alternate signal stack.

The current implementation fails for architectures which have the
stack grow down on the corner case where sas_ss_sp == sp.This was
reported as Debian bug #544905 on AMD64.
Simplified test case: http://download.breakpoint.cc/tc-sig-stack.c

The test case creates the following stack scenario:
   0xn0300	stack top
   0xn0200	alt stack pointer top (when switching to alt stack)
   0xn01ff	alt stack end
   0xn0100	alt stack start == stack pointer

If the signal is sent the stack pointer is pointing to the base
address of the alt stack and the kernel erroneously decides that it
has already switched to the alternate stack because of the current
check for "sp - sas_ss_sp &lt; sas_ss_size"

On parisc (stack grows up) the scenario would be:
   0xn0200	stack pointer
   0xn01ff	alt stack end
   0xn0100	alt stack start = alt stack pointer base
   		    	  	  (when switching to alt stack)
   0xn0000	stack base

This is handled correctly by the current implementation.

[ tglx: Modified for archs which have the stack grow up (parisc) which
  	would fail with the correct implementation for stack grows
  	down. Added a check for sp &gt;= current-&gt;sas_ss_sp which is
  	strictly not necessary but makes the code symetric for both
  	variants ]

Signed-off-by: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Roland McGrath &lt;roland@redhat.com&gt;
Cc: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
LKML-Reference: &lt;20091025143758.GA6653@Chamillionaire.breakpoint.cc&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects</title>
<updated>2009-12-14T16:08:09+00:00</updated>
<author>
<name>James Bottomley</name>
<email>James.Bottomley@suse.de</email>
</author>
<published>2009-11-05T19:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43'/>
<id>urn:sha1:3c4f4e86d320bc7853f9aba7f8382a5a77dc6e43</id>
<content type='text'>
commit d139b9bd0e52dda14fd13412e7096e68b56d0076 upstream.

Some of our virtual SCSI hosts don't have a proper bus parent at the
top, which can be a problem for doing DMA on them

This patch makes the host device cache a pointer to the physical bus
device and provides an extra API for setting it (the normal API picks
it up from the parent).  This patch also modifies the qla2xxx and lpfc
vport logic to use the new DMA host setting API.

Acked-By: James Smart  &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>SCSI: osd_protocol.h: Add missing #include</title>
<updated>2009-12-14T16:08:07+00:00</updated>
<author>
<name>Martin Michlmayr</name>
<email>tbm@cyrius.com</email>
</author>
<published>2009-11-16T18:49:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fa0b90829888932592f6f99959ebc42c12356623'/>
<id>urn:sha1:fa0b90829888932592f6f99959ebc42c12356623</id>
<content type='text'>
commit 0899638688f223fd9e9fee60d662665e11693d12 upstream.

include/scsi/osd_protocol.h uses ALIGN() without an #include
&lt;linux/kernel.h&gt;, leading to:
| include/scsi/osd_protocol.h:362: error: implicit declaration of function 'ALIGN'

Signed-off-by: Martin Michlmayr &lt;tbm@cyrius.com&gt;
Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>SCSI: megaraid_sas: fix 64 bit sense pointer truncation</title>
<updated>2009-12-14T16:08:04+00:00</updated>
<author>
<name>Yang, Bo</name>
<email>Bo.Yang@lsi.com</email>
</author>
<published>2009-10-06T20:52:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=66d8e059a54d7aa345ef9a857986e2055870a14e'/>
<id>urn:sha1:66d8e059a54d7aa345ef9a857986e2055870a14e</id>
<content type='text'>
commit 7b2519afa1abd1b9f63aa1e90879307842422dae upstream.

The current sense pointer is cast to a u32 pointer, which can truncate
on 64 bits.  Fix by using unsigned long instead.

Signed-off-by Bo Yang&lt;bo.yang@lsi.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT</title>
<updated>2009-12-14T16:08:01+00:00</updated>
<author>
<name>Akira Fujita</name>
<email>a-fujita@rs.jp.nec.com</email>
</author>
<published>2009-12-07T04:38:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=51a88ff8de521caa02d8d208e410ff85a3c85199'/>
<id>urn:sha1:51a88ff8de521caa02d8d208e410ff85a3c85199</id>
<content type='text'>
(cherry picked from commit 4a58579b9e4e2a35d57e6c9c8483e52f6f1b7fd6)

This patch fixes three problems in the handling of the
EXT4_IOC_MOVE_EXT ioctl:

1. In current EXT4_IOC_MOVE_EXT, there are read access mode checks for
original and donor files, but they allow the illegal write access to
donor file, since donor file is overwritten by original file data.  To
fix this problem, change access mode checks of original (r-&gt;r/w) and
donor (r-&gt;w) files.

2.  Disallow the use of donor files that have a setuid or setgid bits.

3.  Call mnt_want_write() and mnt_drop_write() before and after
ext4_move_extents() calling to get write access to a mount.

Signed-off-by: Akira Fujita &lt;a-fujita@rs.jp.nec.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ext4: Wait for proper transaction commit on fsync</title>
<updated>2009-12-14T16:08:00+00:00</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2009-12-10T05:50:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e8f0d507456ee6ea071e0bb9d445e848b29872ac'/>
<id>urn:sha1:e8f0d507456ee6ea071e0bb9d445e848b29872ac</id>
<content type='text'>
(cherry picked from commit b436b9bef84de6893e86346d8fbf7104bc520645)

We cannot rely on buffer dirty bits during fsync because pdflush can come
before fsync is called and clear dirty bits without forcing a transaction
commit. What we do is that we track which transaction has last changed
the inode and which transaction last changed allocation and force it to
disk on fsync.

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ext4: fix incorrect block reservation on quota transfer.</title>
<updated>2009-12-14T16:07:58+00:00</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2009-12-09T03:42:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=224fb952944a6ff5c4032f5cdcf0a73ac45b0702'/>
<id>urn:sha1:224fb952944a6ff5c4032f5cdcf0a73ac45b0702</id>
<content type='text'>
(cherry picked from commit 194074acacebc169ded90a4657193f5180015051)

Inside -&gt;setattr() call both ATTR_UID and ATTR_GID may be valid
This means that we may end-up with transferring all quotas. Add
we have to reserve QUOTA_DEL_BLOCKS for all quotas, as we do in
case of QUOTA_INIT_BLOCKS.

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Reviewed-by: Mingming Cao &lt;cmm@us.ibm.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ext4: quota macros cleanup</title>
<updated>2009-12-14T16:07:57+00:00</updated>
<author>
<name>Dmitry Monakhov</name>
<email>dmonakhov@openvz.org</email>
</author>
<published>2009-12-09T03:42:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e79220b94468feaf42ec05fe197a8dfe5a782f57'/>
<id>urn:sha1:e79220b94468feaf42ec05fe197a8dfe5a782f57</id>
<content type='text'>
(cherry picked from commit 5aca07eb7d8f14d90c740834d15ca15277f4820c)

Currently all quota block reservation macros contains hard-coded "2"
aka MAXQUOTAS value. This is no good because in some places it is not
obvious to understand what does this digit represent. Let's introduce
new macro with self descriptive name.

Signed-off-by: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Acked-by: Mingming Cao &lt;cmm@us.ibm.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
</feed>
