<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v3.6.6</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v3.6.6</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v3.6.6'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-11-05T08:56:50Z</updated>
<entry>
<title>ceph: avoid 32-bit page index overflow</title>
<updated>2012-11-05T08:56:50Z</updated>
<author>
<name>Alex Elder</name>
<email>elder@inktank.com</email>
</author>
<published>2012-10-02T15:25:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b7639e25716afc0211bcc14006a4af4e9e9bc2b9'/>
<id>urn:sha1:b7639e25716afc0211bcc14006a4af4e9e9bc2b9</id>
<content type='text'>
commit 6285bc231277419255f3498d3eb5ddc9f8e7fe79 upstream.

A pgoff_t is defined (by default) to have type (unsigned long).  On
architectures such as i686 that's a 32-bit type.  The ceph address
space code was attempting to produce 64 bit offsets by shifting a
page's index by PAGE_CACHE_SHIFT, but the result was not what was
desired because the shift occurred before the result got promoted
to 64 bits.

Fix this by converting all uses of page-&gt;index used in this way to
use the page_offset() macro, which ensures the 64-bit result has the
intended value.

This fixes http://tracker.newdream.net/issues/3112

Reported-by:  Mohamed Pakkeer &lt;pakkeer.mohideen@realimage.com&gt;
Signed-off-by: Alex Elder &lt;elder@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ceph: Fix oops when handling mdsmap that decreases max_mds</title>
<updated>2012-11-05T08:56:50Z</updated>
<author>
<name>Yan, Zheng</name>
<email>zheng.z.yan@intel.com</email>
</author>
<published>2012-09-20T09:42:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1ad6768c537d57fec3dcb249cd384332cfacfe24'/>
<id>urn:sha1:1ad6768c537d57fec3dcb249cd384332cfacfe24</id>
<content type='text'>
commit 3e8f43a089f06279c5f76a9ccd42578eebf7bfa5 upstream.

When i &gt;= newmap-&gt;m_max_mds, ceph_mdsmap_get_addr(newmap, i) return
NULL. Passing NULL to memcmp() triggers oops.

Signed-off-by: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Signed-off-by: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ceph: fix dentry reference leak in encode_fh()</title>
<updated>2012-11-05T08:56:50Z</updated>
<author>
<name>David Zafman</name>
<email>david.zafman@inktank.com</email>
</author>
<published>2012-10-18T21:01:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=aeb469d6f6b311f531df80d25a82b297cffc4569'/>
<id>urn:sha1:aeb469d6f6b311f531df80d25a82b297cffc4569</id>
<content type='text'>
commit 52eb5a900a9863a8b77a895f770e5d825c8e02c6 upstream.

Call to d_find_alias() needs a corresponding dput()

This fixes http://tracker.newdream.net/issues/3271

Signed-off-by: David Zafman &lt;david.zafman@inktank.com&gt;
Reviewed-by: Sage Weil &lt;sage@inktank.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ext4: fix unjournaled inode bitmap modification</title>
<updated>2012-11-05T08:56:48Z</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@redhat.com</email>
</author>
<published>2012-10-29T02:24:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dab43b73a7c7317f941c1314e9a77374ba8999ee'/>
<id>urn:sha1:dab43b73a7c7317f941c1314e9a77374ba8999ee</id>
<content type='text'>
commit ffb5387e85d528fb6d0d924abfa3fbf0fc484071 upstream.

commit 119c0d4460b001e44b41dcf73dc6ee794b98bd31 changed
ext4_new_inode() such that the inode bitmap was being modified
outside a transaction, which could lead to corruption, and was
discovered when journal_checksum found a bad checksum in the
journal during log replay.

Nix ran into this when using the journal_async_commit mount
option, which enables journal checksumming.  The ensuing
journal replay failures due to the bad checksums led to
filesystem corruption reported as the now infamous
"Apparent serious progressive ext4 data corruption bug"

[ Changed by tytso to only call ext4_journal_get_write_access() only
  when we're fairly certain that we're going to allocate the inode. ]

I've tested this by mounting with journal_checksum and
running fsstress then dropping power; I've also tested by
hacking DM to create snapshots w/o first quiescing, which
allows me to test journal replay repeatedly w/o actually
power-cycling the box.  Without the patch I hit a journal
checksum error every time.  With this fix it survives
many iterations.

Reported-by: Nix &lt;nix@esperi.org.uk&gt;
Signed-off-by: Eric Sandeen &lt;sandeen@redhat.com&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>pnfsblock: fix non-aligned DIO write</title>
<updated>2012-10-31T17:10:32Z</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-08-23T16:27:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e8a8c5319cf390ab1895d78f6ffcd2c8038f0075'/>
<id>urn:sha1:e8a8c5319cf390ab1895d78f6ffcd2c8038f0075</id>
<content type='text'>
commit 96c9eae638765c2bf2ca4f5a6325484f9bb69aa7 upstream.

For DIO writes, if it is not blocksize aligned, we need to do
internal serialization. It may slow down writers anyway. So we
just bail them out and resend to MDS.

Signed-off-by: Peng Tao &lt;tao.peng@emc.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>pnfsblock: fix non-aligned DIO read</title>
<updated>2012-10-31T17:10:32Z</updated>
<author>
<name>Peng Tao</name>
<email>bergwolf@gmail.com</email>
</author>
<published>2012-08-23T16:27:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d1e1f0083e6cb81df51838f8a7824436edd96a95'/>
<id>urn:sha1:d1e1f0083e6cb81df51838f8a7824436edd96a95</id>
<content type='text'>
commit f742dc4a32587bff50b13dde9d8894b96851951a upstream.

For DIO read, if it is not sector aligned, we should reject it
and resend via MDS. Otherwise there might be data corruption.
Also teach bl_read_pagelist to handle partial page reads for DIO.

Signed-off-by: Peng Tao &lt;tao.peng@emc.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>freezer: exec should clear PF_NOFREEZE along with PF_KTHREAD</title>
<updated>2012-10-31T17:10:20Z</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@redhat.com</email>
</author>
<published>2012-10-25T20:28:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cae2c0464b08ffc8b5632cc56049ae7d2b80506f'/>
<id>urn:sha1:cae2c0464b08ffc8b5632cc56049ae7d2b80506f</id>
<content type='text'>
commit b40a79591ca918e7b91b0d9b6abd5d00f2e88c19 upstream.

flush_old_exec() clears PF_KTHREAD but forgets about PF_NOFREEZE.

Signed-off-by: Oleg Nesterov &lt;oleg@redhat.com&gt;
Acked-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()</title>
<updated>2012-10-31T17:09:58Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2012-09-29T20:23:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7886abd88bc7c4c145a2260844795604d569596b'/>
<id>urn:sha1:7886abd88bc7c4c145a2260844795604d569596b</id>
<content type='text'>
commit 66081a72517a131430dcf986775f3268aafcb546 upstream.

The warning check for duplicate sysfs entries can cause a buffer overflow
when printing the warning, as strcat() doesn't check buffer sizes.
Use strlcat() instead.

Since strlcat() doesn't return a pointer to the passed buffer, unlike
strcat(), I had to convert the nested concatenation in sysfs_add_one() to
an admittedly more obscure comma operator construct, to avoid emitting code
for the concatenation if CONFIG_BUG is disabled.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>LOCKD: Clear ln-&gt;nsm_clnt only when ln-&gt;nsm_users is zero</title>
<updated>2012-10-31T17:09:57Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2012-10-24T12:53:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cb499284d1cf7de50b85fcfb3248bae2db090d14'/>
<id>urn:sha1:cb499284d1cf7de50b85fcfb3248bae2db090d14</id>
<content type='text'>
commit e498daa81295d02f7359af313c2b7f87e1062207 upstream.

The current code is clearing it in all cases _except_ when zero.

Reported-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>LOCKD: fix races in nsm_client_get</title>
<updated>2012-10-31T17:09:57Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2012-10-23T17:51:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cafefcb3f8be77ef156b4b3bd52a5374b3533679'/>
<id>urn:sha1:cafefcb3f8be77ef156b4b3bd52a5374b3533679</id>
<content type='text'>
commit a4ee8d978e47e79d536226dccb48991f70091168 upstream.

Commit e9406db20fecbfcab646bad157b4cfdc7cadddfb (lockd: per-net
NSM client creation and destruction helpers introduced) contains
a nasty race on initialisation of the per-net NSM client because
it doesn't check whether or not the client is set after grabbing
the nsm_create_mutex.

Reported-by: Nix &lt;nix@esperi.org.uk&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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