Al Viro 12a5b5294c fix copy_tree() regression
Since 3.14 we had copy_tree() get the shadowing wrong - if we had one
vfsmount shadowing another (i.e. if A is a slave of B, C is mounted
on A/foo, then D got mounted on B/foo creating D' on A/foo shadowed
by C), copy_tree() of A would make a copy of D' shadow the the copy of
C, not the other way around.

It's easy to fix, fortunately - just make sure that mount follows
the one that shadows it in mnt_child as well as in mnt_hash, and when
copy_tree() decides to attach a new mount, check if the last child
it has added to the same parent should be shadowing the new one.
And if it should, just use the same logics commit_tree() has - put the
new mount into the hash and children lists right after the one that
should shadow it.

Cc: stable@vger.kernel.org [3.14 and later]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-08-11 12:28:10 -04:00
..
2014-06-06 16:08:09 -07:00
2014-08-07 14:40:09 -04:00
2014-06-04 16:53:53 -07:00
2014-06-12 00:18:51 -04:00
2014-08-07 14:40:09 -04:00
2014-08-07 14:40:09 -04:00
2014-01-25 03:14:05 -05:00
2014-06-06 16:08:13 -07:00
2014-06-12 00:18:51 -04:00
2014-05-06 17:39:36 -04:00
2014-08-07 14:40:09 -04:00
2014-08-07 14:40:11 -04:00
2014-05-06 17:31:10 -04:00
2014-02-07 16:08:57 -08:00
2014-08-07 14:40:08 -04:00
2014-08-07 14:40:09 -04:00
2014-08-11 12:28:10 -04:00
2014-05-06 17:39:42 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:09 -04:00
2014-07-23 10:18:02 -07:00