<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v3.14</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/fs?h=v3.14</id>
<link rel='self' href='https://git.amat.us/linux/atom/fs?h=v3.14'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-03-31T00:26:08Z</updated>
<entry>
<title>Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2014-03-31T00:26:08Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-03-31T00:26:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fedc1ed0f11be666de066b0c78443254736a942e'/>
<id>urn:sha1:fedc1ed0f11be666de066b0c78443254736a942e</id>
<content type='text'>
Pull vfs fixes from Al Viro:
 "Switch mnt_hash to hlist, turning the races between __lookup_mnt() and
  hash modifications into false negatives from __lookup_mnt() (instead
  of hangs)"

On the false negatives from __lookup_mnt():
 "The *only* thing we care about is not getting stuck in __lookup_mnt().
  If it misses an entry because something in front of it just got moved
  around, etc, we are fine.  We'll notice that mount_lock mismatch and
  that'll be it"

* 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  switch mnt_hash to hlist
  don't bother with propagate_mnt() unless the target is shared
  keep shadowed vfsmounts together
  resizable namespace.c hashes
</content>
</entry>
<entry>
<title>ext4: atomically set inode-&gt;i_flags in ext4_set_inode_flags()</title>
<updated>2014-03-31T00:02:06Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-03-30T14:20:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=00a1a053ebe5febcfc2ec498bd894f035ad2aa06'/>
<id>urn:sha1:00a1a053ebe5febcfc2ec498bd894f035ad2aa06</id>
<content type='text'>
Use cmpxchg() to atomically set i_flags instead of clearing out the
S_IMMUTABLE, S_APPEND, etc. flags and then setting them from the
EXT4_IMMUTABLE_FL, EXT4_APPEND_FL flags, since this opens up a race
where an immutable file has the immutable flag cleared for a brief
window of time.

Reported-by: John Sullivan &lt;jsrhbz@kanargh.force9.co.uk&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>switch mnt_hash to hlist</title>
<updated>2014-03-30T23:18:51Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2014-03-21T01:10:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=38129a13e6e71f666e0468e99fdd932a687b4d7e'/>
<id>urn:sha1:38129a13e6e71f666e0468e99fdd932a687b4d7e</id>
<content type='text'>
fixes RCU bug - walking through hlist is safe in face of element moves,
since it's self-terminating.  Cyclic lists are not - if we end up jumping
to another hash chain, we'll loop infinitely without ever hitting the
original list head.

[fix for dumb braino folded]

Spotted by: Max Kellermann &lt;mk@cm4all.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>don't bother with propagate_mnt() unless the target is shared</title>
<updated>2014-03-30T23:18:50Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2014-03-21T14:14:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0b1b901b5a98bb36943d10820efc796f7cd45ff3'/>
<id>urn:sha1:0b1b901b5a98bb36943d10820efc796f7cd45ff3</id>
<content type='text'>
If the dest_mnt is not shared, propagate_mnt() does nothing -
there's no mounts to propagate to and thus no copies to create.
Might as well don't bother calling it in that case.

Cc: stable@vger.kernel.org
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>keep shadowed vfsmounts together</title>
<updated>2014-03-30T23:18:50Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2014-03-21T00:34:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1d6a32acd70ab18499829c0a9a5dbe2bace72a13'/>
<id>urn:sha1:1d6a32acd70ab18499829c0a9a5dbe2bace72a13</id>
<content type='text'>
preparation to switching mnt_hash to hlist

Cc: stable@vger.kernel.org
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>resizable namespace.c hashes</title>
<updated>2014-03-30T23:18:49Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2014-02-28T18:46:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0818bf27c05b2de56c5b2bd08cfae2a939bd5f52'/>
<id>urn:sha1:0818bf27c05b2de56c5b2bd08cfae2a939bd5f52</id>
<content type='text'>
* switch allocation to alloc_large_system_hash()
* make sizes overridable by boot parameters (mhash_entries=, mphash_entries=)
* switch mountpoint_hashtable from list_head to hlist_head

Cc: stable@vger.kernel.org
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ocfs2: check if cluster name exists before deref</title>
<updated>2014-03-28T20:56:58Z</updated>
<author>
<name>Sasha Levin</name>
<email>sasha.levin@oracle.com</email>
</author>
<published>2014-03-28T20:33:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d9060742fbf630fe31951dfc10b798deb2813f01'/>
<id>urn:sha1:d9060742fbf630fe31951dfc10b798deb2813f01</id>
<content type='text'>
Commit c74a3bdd9b52 ("ocfs2: add clustername to cluster connection") is
trying to strlcpy a string which was explicitly passed as NULL in the
very same patch, triggering a NULL ptr deref.

  BUG: unable to handle kernel NULL pointer dereference at           (null)
  IP: strlcpy (lib/string.c:388 lib/string.c:151)
  CPU: 19 PID: 19426 Comm: trinity-c19 Tainted: G        W     3.14.0-rc7-next-20140325-sasha-00014-g9476368-dirty #274
  RIP:  strlcpy (lib/string.c:388 lib/string.c:151)
  Call Trace:
   ocfs2_cluster_connect (fs/ocfs2/stackglue.c:350)
   ocfs2_cluster_connect_agnostic (fs/ocfs2/stackglue.c:396)
   user_dlm_register (fs/ocfs2/dlmfs/userdlm.c:679)
   dlmfs_mkdir (fs/ocfs2/dlmfs/dlmfs.c:503)
   vfs_mkdir (fs/namei.c:3467)
   SyS_mkdirat (fs/namei.c:3488 fs/namei.c:3472)
   tracesys (arch/x86/kernel/entry_64.S:749)

akpm: this patch probably disables the feature.  A temporary thing to
avoid triviel oopses.

Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Cc: Goldwyn Rodrigues &lt;rgoldwyn@suse.com&gt;
Cc: Mark Fasheh &lt;mfasheh@suse.de&gt;
Cc: Joel Becker &lt;jlbec@evilplan.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>vfs: Allocate anon_inode_inode in anon_inode_init()</title>
<updated>2014-03-27T16:52:54Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2014-03-26T05:20:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=75c5a52da3fc2a06abb6c6192bdf5d680e56d37d'/>
<id>urn:sha1:75c5a52da3fc2a06abb6c6192bdf5d680e56d37d</id>
<content type='text'>
Currently we allocated anon_inode_inode in anon_inodefs_mount. This is
somewhat fragile as if that function ever gets called again, it will
overwrite anon_inode_inode pointer. So move the initialization of
anon_inode_inode to anon_inode_init().

Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
[ Further simplified on suggestion from Dave Jones ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fs: remove now stale label in anon_inode_init()</title>
<updated>2014-03-26T00:43:34Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-03-26T00:43:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fce7fc79c8f7188dfc5eafa1b937bcc3c5a4c2f5'/>
<id>urn:sha1:fce7fc79c8f7188dfc5eafa1b937bcc3c5a4c2f5</id>
<content type='text'>
The previous commit removed the register_filesystem() call and the
associated error handling, but left the label for the error path that no
longer exists.  Remove that too.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fs: Avoid userspace mounting anon_inodefs filesystem</title>
<updated>2014-03-26T00:42:16Z</updated>
<author>
<name>Jan Kara</name>
<email>jack@suse.cz</email>
</author>
<published>2014-03-25T20:37:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d6f2589ad561aa5fa39f347eca6942668b7560a1'/>
<id>urn:sha1:d6f2589ad561aa5fa39f347eca6942668b7560a1</id>
<content type='text'>
anon_inodefs filesystem is a kernel internal filesystem userspace
shouldn't mess with. Remove registration of it so userspace cannot
even try to mount it (which would fail anyway because the filesystem is
MS_NOUSER).

This fixes an oops triggered by trinity when it tried mounting
anon_inodefs which overwrote anon_inode_inode pointer while other CPU
has been in anon_inode_getfile() between ihold() and d_instantiate().
Thus effectively creating dentry pointing to an inode without holding a
reference to it.

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
