<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v2.6.36-rc4</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v2.6.36-rc4</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v2.6.36-rc4'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-09-11T01:19:26Z</updated>
<entry>
<title>Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs</title>
<updated>2010-09-11T01:19:26Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-09-11T01:19:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fbc1487019d287bd869baac846dee97f39f8f07c'/>
<id>urn:sha1:fbc1487019d287bd869baac846dee97f39f8f07c</id>
<content type='text'>
* 'for-linus' of git://oss.sgi.com/xfs/xfs:
  xfs: log IO completion workqueue is a high priority queue
  xfs: prevent reading uninitialized stack memory
</content>
</entry>
<entry>
<title>xfs: log IO completion workqueue is a high priority queue</title>
<updated>2010-09-10T15:16:54Z</updated>
<author>
<name>Dave Chinner</name>
<email>dchinner@redhat.com</email>
</author>
<published>2010-09-08T09:00:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=51749e47e191db8e588ad5cebea731caf7b705d7'/>
<id>urn:sha1:51749e47e191db8e588ad5cebea731caf7b705d7</id>
<content type='text'>
The workqueue implementation in 2.6.36-rcX has changed, resulting
in the workqueues no longer having dedicated threads for work
processing. This has caused severe livelocks under heavy parallel
create workloads because the log IO completions have been getting
held up behind metadata IO completions.  Hence log commits would
stall, memory allocation would stall because pages could not be
cleaned, and lock contention on the AIL during inode IO completion
processing was being seen to slow everything down even further.

By making the log Io completion workqueue a high priority workqueue,
they are queued ahead of all data/metadata IO completions and
processed before the data/metadata completions. Hence the log never
gets stalled, and operations needed to clean memory can continue as
quickly as possible. This avoids the livelock conditions and allos
the system to keep running under heavy load as per normal.

Signed-off-by: Dave Chinner &lt;dchinner@redhat.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>execve: make responsive to SIGKILL with large arguments</title>
<updated>2010-09-10T15:10:26Z</updated>
<author>
<name>Roland McGrath</name>
<email>roland@redhat.com</email>
</author>
<published>2010-09-08T02:37:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9aea5a65aa7a1af9a4236dfaeb0088f1624f9919'/>
<id>urn:sha1:9aea5a65aa7a1af9a4236dfaeb0088f1624f9919</id>
<content type='text'>
An execve with a very large total of argument/environment strings
can take a really long time in the execve system call.  It runs
uninterruptibly to count and copy all the strings.  This change
makes it abort the exec quickly if sent a SIGKILL.

Note that this is the conservative change, to interrupt only for
SIGKILL, by using fatal_signal_pending().  It would be perfectly
correct semantics to let any signal interrupt the string-copying in
execve, i.e. use signal_pending() instead of fatal_signal_pending().
We'll save that change for later, since it could have user-visible
consequences, such as having a timer set too quickly make it so that
an execve can never complete, though it always happened to work before.

Signed-off-by: Roland McGrath &lt;roland@redhat.com&gt;
Reviewed-by: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>execve: improve interactivity with large arguments</title>
<updated>2010-09-10T15:10:26Z</updated>
<author>
<name>Roland McGrath</name>
<email>roland@redhat.com</email>
</author>
<published>2010-09-08T02:36:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7993bc1f4663c0db67bb8f0d98e6678145b387cd'/>
<id>urn:sha1:7993bc1f4663c0db67bb8f0d98e6678145b387cd</id>
<content type='text'>
This adds a preemption point during the copying of the argument and
environment strings for execve, in copy_strings().  There is already
a preemption point in the count() loop, so this doesn't add any new
points in the abstract sense.

When the total argument+environment strings are very large, the time
spent copying them can be much more than a normal user time slice.
So this change improves the interactivity of the rest of the system
when one process is doing an execve with very large arguments.

Signed-off-by: Roland McGrath &lt;roland@redhat.com&gt;
Reviewed-by: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>setup_arg_pages: diagnose excessive argument size</title>
<updated>2010-09-10T15:10:26Z</updated>
<author>
<name>Roland McGrath</name>
<email>roland@redhat.com</email>
</author>
<published>2010-09-08T02:35:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1b528181b2ffa14721fb28ad1bd539fe1732c583'/>
<id>urn:sha1:1b528181b2ffa14721fb28ad1bd539fe1732c583</id>
<content type='text'>
The CONFIG_STACK_GROWSDOWN variant of setup_arg_pages() does not
check the size of the argument/environment area on the stack.
When it is unworkably large, shift_arg_pages() hits its BUG_ON.
This is exploitable with a very large RLIMIT_STACK limit, to
create a crash pretty easily.

Check that the initial stack is not too large to make it possible
to map in any executable.  We're not checking that the actual
executable (or intepreter, for binfmt_elf) will fit.  So those
mappings might clobber part of the initial stack mapping.  But
that is just userland lossage that userland made happen, not a
kernel problem.

Signed-off-by: Roland McGrath &lt;roland@redhat.com&gt;
Reviewed-by: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block</title>
<updated>2010-09-10T14:26:27Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-09-10T14:26:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ff3cb3fec3c5bbb5110e652bbdd410bc99a47e9f'/>
<id>urn:sha1:ff3cb3fec3c5bbb5110e652bbdd410bc99a47e9f</id>
<content type='text'>
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
  block: Range check cpu in blk_cpu_to_group
  scatterlist: prevent invalid free when alloc fails
  writeback: Fix lost wake-up shutting down writeback thread
  writeback: do not lose wakeup events when forking bdi threads
  cciss: fix reporting of max queue depth since init
  block: switch s390 tape_block and mg_disk to elevator_change()
  block: add function call to switch the IO scheduler from a driver
  fs/bio-integrity.c: return -ENOMEM on kmalloc failure
  bio-integrity.c: remove dependency on __GFP_NOFAIL
  BLOCK: fix bio.bi_rw handling
  block: put dev-&gt;kobj in blk_register_queue fail path
  cciss: handle allocation failure
  cfq-iosched: Documentation help for new tunables
  cfq-iosched: blktrace print per slice sector stats
  cfq-iosched: Implement tunable group_idle
  cfq-iosched: Do group share accounting in IOPS when slice_idle=0
  cfq-iosched: Do not idle if slice_idle=0
  cciss: disable doorbell reset on reset_devices
  blkio: Fix return code for mkdir calls
</content>
</entry>
<entry>
<title>xfs: prevent reading uninitialized stack memory</title>
<updated>2010-09-10T12:39:28Z</updated>
<author>
<name>Dan Rosenberg</name>
<email>dan.j.rosenberg@gmail.com</email>
</author>
<published>2010-09-06T22:24:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a122eb2fdfd78b58c6dd992d6f4b1aaef667eef9'/>
<id>urn:sha1:a122eb2fdfd78b58c6dd992d6f4b1aaef667eef9</id>
<content type='text'>
The XFS_IOC_FSGETXATTR ioctl allows unprivileged users to read 12
bytes of uninitialized stack memory, because the fsxattr struct
declared on the stack in xfs_ioc_fsgetxattr() does not alter (or zero)
the 12-byte fsx_pad member before copying it back to the user.  This
patch takes care of it.

Signed-off-by: Dan Rosenberg &lt;dan.j.rosenberg@gmail.com&gt;
Reviewed-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: Alex Elder &lt;aelder@sgi.com&gt;
</content>
</entry>
<entry>
<title>minix: fix regression in minix_mkdir()</title>
<updated>2010-09-10T01:57:25Z</updated>
<author>
<name>Jorge Boncompte [DTI2]</name>
<email>jorge@dti2.net</email>
</author>
<published>2010-09-09T23:38:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=eee743fd7eac9f2ea69ad06d093dfb5a12538fe5'/>
<id>urn:sha1:eee743fd7eac9f2ea69ad06d093dfb5a12538fe5</id>
<content type='text'>
Commit 9eed1fb721c ("minix: replace inode uid,gid,mode init with helper")
broke directory creation on minix filesystems.

Fix it by passing the needed mode flag to inode init helper.

Signed-off-by: Jorge Boncompte [DTI2] &lt;jorge@dti2.net&gt;
Cc: Dmitry Monakhov &lt;dmonakhov@openvz.org&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: &lt;stable@kernel.org&gt;		[2.6.35.x]
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>vfs: take O_NONBLOCK out of the O_* uniqueness test</title>
<updated>2010-09-10T01:57:25Z</updated>
<author>
<name>James Bottomley</name>
<email>James.Bottomley@suse.de</email>
</author>
<published>2010-09-09T23:38:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3ab04d5cf9736b7a4e9dfcf28285d8663b01aa0e'/>
<id>urn:sha1:3ab04d5cf9736b7a4e9dfcf28285d8663b01aa0e</id>
<content type='text'>
O_NONBLOCK on parisc has a dual value:

#define O_NONBLOCK	000200004 /* HPUX has separate NDELAY &amp; NONBLOCK */

It is caught by the O_* bits uniqueness check and leads to a parisc
compile error.  The fix would be to take O_NONBLOCK out.

Signed-off-by: Wu Fengguang &lt;fengguang.wu@intel.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Cc: Jamie Lokier &lt;jamie@shareable.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>binfmt_misc: fix binfmt_misc priority</title>
<updated>2010-09-10T01:57:24Z</updated>
<author>
<name>Jan Sembera</name>
<email>jsembera@suse.cz</email>
</author>
<published>2010-09-09T23:37:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ee3aebdd8f5f8eac41c25c80ceee3d728f920f3b'/>
<id>urn:sha1:ee3aebdd8f5f8eac41c25c80ceee3d728f920f3b</id>
<content type='text'>
Commit 74641f584da ("alpha: binfmt_aout fix") (May 2009) introduced a
regression - binfmt_misc is now consulted after binfmt_elf, which will
unfortunately break ia32el.  ia32 ELF binaries on ia64 used to be matched
using binfmt_misc and executed using wrapper.  As 32bit binaries are now
matched by binfmt_elf before bindmt_misc kicks in, the wrapper is ignored.

The fix increases precedence of binfmt_misc to the original state.

Signed-off-by: Jan Sembera &lt;jsembera@suse.cz&gt;
Cc: Ivan Kokshaysky &lt;ink@jurassic.park.msu.ru&gt;
Cc: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;
Cc: Richard Henderson &lt;rth@twiddle.net
Cc: &lt;stable@kernel.org&gt;		[2.6.everything.x]
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>
