New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 698561 link

Starred by 4 users

Issue metadata

Status: Verified
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocked on:
issue 708693

Blocking:
issue 347322



Sign in to add a comment

ext4 crypto: test xfstests.generic.068 crash veryon with 3.14 in ext4

Project Member Reported by gwendal@chromium.org, Mar 5 2017

Issue description

Test is marked "068 other auto freeze dangerous stress"

Crash is: 
kernel BUG at /mnt/host/source/src/third_party/kernel/v3.14/mm/highmem.c:290!

  switch (--pkmap_count[nr]) {
  case 0:
    BUG();

Stack is:

__kunmap_atomic+0x8c/0xd0
scatterwalk_copychunks+0x84/0xb4
scatterwalk_map_and_copy+0xac/0xdc
cts_cbc_decrypt+0xb4/0x348
crypto_cts_decrypt+0xf8/0x118
async_decrypt+0x5c/0x7c
ext4_fname_decrypt+0x130/0x200
_ext4_fname_disk_to_usr+0xc8/0x194
ext4_follow_link+0x178/0x208
generic_readlink+0x4c/0xc4
SyS_readlinkat+0xc4/0x118
SyS_readlink+0x30/0x34
ret_fast_syscall+0x0/0x30

Looks like a race (unmap a region alreaday unmapped)

The test has failed in the past (with different stack( http://www.spinics.net/lists/linux-ext4/msg36858.html, maybe 3.14 still have the races open.

 
console-ramoops
127 KB View Download
Other tests are impacted:

Ted, Looking around, I see f2fs has a similar issue: http://www.spinics.net/lists/linux-fsdevel/msg89699.html

The idea is to copy directory/link name to low memory via kmalloc(.. GFP_NOFS).

Does it make sense for ext4 crypto too?



Cc: briannorris@chromium.org groeck@chromium.org dtor@chromium.org

Comment 3 by tytso@google.com, Mar 8 2017

Hmm, we really don't want to do this all the time; at the very least, it will be a completely useless copy on 64-bit platforms.

I just checked on a 32-bit system running 4.10+ (not quite 4.11-rc1) with CONFIG_HIGHMEM enabled, and it's not reproducing for me there.   It sounds like this is a bug in lib/scatterwalk.c, or maybe in the kmap.c code, but it looks like it's all doing the right thing, at least for HEAD and the 3.14.73 kernel tree I have on my laptop.   The 32-bit x86 kmap and kunmap both call the kmap_high / kunmap_high() as needed, and lib/scatterwalk.c seem to call kmap / kunmap, so it all looks good from where I sit.

I have *not* looked at whatever version of the kernel the f2fs folks had when they saw the bug which inspired their patch, nor have I had a chance to look at the Chromeos 3.14 kernel code.   Is this failing for any of the other newer ChromeOS kernels that have ext4 encryption backported?   Is it failing reliably for you?   And on what architecture (I'm only looking at a test run on a 32-bit x86 with CONFIG_HIGHMEM turned on)?

Issue 688250 has been merged into this issue.
Using test generic.269 which have same failures (tests generic.68 and generic.117 fail as well).

Comparing varation on test 269:
                  |   3.14 veyron (arm 32 bits)     | 3.14 samus (Intel 64 bits)
no ext4 crypto    |     Pass                        |   Pass
ext4 crypto       |     Crash (100%)                |   Fail (9/10)

When it fails on samus the error is:
generic/269 38s ... 33s
_check_generic_filesystem: filesystem on /dev/loop7 is inconsistent (see /usr/local/xfstests/results//generic/269.full)
Ran: generic/269
Failures: generic/269
Failed 1 of 1 tests

That test fails on 3.18 and 4.4 as well.


Looking at 068, the situation is brighter, only veyron crashes:
On intel platform using 3.14, 3.18 and 4.4, the test 069 passes. I open another bug for #5.

Add CONFIG_DEBUG_SG, we are clearly calling sg_init_one on an address that is not a kernel logical address

kernel BUG at /mnt/host/source/src/third_party/kernel/v3.14/include/linux/scatterlist.h:115!
...
[  292.442181] [<c048f668>] (sg_init_one)
[  292.450305] [<c03ef104>] (ext4_fname_decrypt)

The address to map is r3:
e2329d8c (high mem, over 1G).

Looking back at history, there used to be a bounce buffer, before d229959072eba.

Before that change, we would put in the scatter gather memory that was allocated with GFP_NOFS, while now, it comes from decrypt argurment that may be vmalloc'ed.




console-ramoops
57.7 KB View Download
I found the problem. We use an address from kmap in ext4_follow_link, and that virtual address can not be used in a scatter gather list.

It has been addressed in ToT, but not in 4.4 (and 3.18).

For 3.14, to work on arm we need:

The following patches address the issue:
c/453124 UPSTREAM: ext4: fix an endianness bug in ext4_encrypted_follow_link()
c/453221 BACKPORT: don't put symlink bodies in pagecache into highmem       

Project Member

Comment 9 by bugdroid1@chromium.org, Mar 13 2017

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/48006f459bde44f7fb6d92ee909246b347d68b7d

commit 48006f459bde44f7fb6d92ee909246b347d68b7d
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date: Mon Mar 13 09:54:15 2017

UPSTREAM: ext4: fix an endianness bug in ext4_encrypted_follow_link()

applying le32_to_cpu() to 16bit value is a bad idea...

Cc: stable@vger.kernel.org # v4.1+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

BUG= chromium:698561 
TEST=compile

(cherry picked from commit 5a1c7f47da9b32d0671e776b0f388095b7f91e2e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

Change-Id: Ie6d1afb4914a30da5bcbf0097d29d32464cdbcec
Reviewed-on: https://chromium-review.googlesource.com/453124
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/48006f459bde44f7fb6d92ee909246b347d68b7d/fs/ext4/symlink.c

Project Member

Comment 10 by bugdroid1@chromium.org, Mar 13 2017

Labels: merge-merged-release-R58-9334.B-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b61eecf27d60f06f9ea0ae4bf800e58feafa987f

commit b61eecf27d60f06f9ea0ae4bf800e58feafa987f
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date: Mon Mar 13 16:06:30 2017

UPSTREAM: ext4: fix an endianness bug in ext4_encrypted_follow_link()

applying le32_to_cpu() to 16bit value is a bad idea...

Cc: stable@vger.kernel.org # v4.1+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

BUG= chromium:698561 
TEST=compile

(cherry picked from commit 5a1c7f47da9b32d0671e776b0f388095b7f91e2e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

Change-Id: Ie6d1afb4914a30da5bcbf0097d29d32464cdbcec
Reviewed-on: https://chromium-review.googlesource.com/453124
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 48006f459bde44f7fb6d92ee909246b347d68b7d)
Reviewed-on: https://chromium-review.googlesource.com/453402
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/b61eecf27d60f06f9ea0ae4bf800e58feafa987f/fs/ext4/symlink.c

Project Member

Comment 11 by bugdroid1@chromium.org, Mar 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b61eecf27d60f06f9ea0ae4bf800e58feafa987f

commit b61eecf27d60f06f9ea0ae4bf800e58feafa987f
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date: Mon Mar 13 16:06:30 2017

UPSTREAM: ext4: fix an endianness bug in ext4_encrypted_follow_link()

applying le32_to_cpu() to 16bit value is a bad idea...

Cc: stable@vger.kernel.org # v4.1+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

BUG= chromium:698561 
TEST=compile

(cherry picked from commit 5a1c7f47da9b32d0671e776b0f388095b7f91e2e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

Change-Id: Ie6d1afb4914a30da5bcbf0097d29d32464cdbcec
Reviewed-on: https://chromium-review.googlesource.com/453124
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 48006f459bde44f7fb6d92ee909246b347d68b7d)
Reviewed-on: https://chromium-review.googlesource.com/453402
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/b61eecf27d60f06f9ea0ae4bf800e58feafa987f/fs/ext4/symlink.c

Comment 12 by uekawa@google.com, Mar 14 2017

Components: Platform>ARC
Labels: M-59
Status: Started (was: Untriaged)
updating the bug status since gwendal's working on this bug already.
1 more change pending?
Project Member

Comment 13 by bugdroid1@chromium.org, Mar 16 2017

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/67ae5c488c2742b0e07052e3b4188ee374afe0e3

commit 67ae5c488c2742b0e07052e3b4188ee374afe0e3
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu Mar 16 07:11:44 2017

UPSTREAM: ext4: fix an endianness bug in ext4_encrypted_follow_link()

applying le32_to_cpu() to 16bit value is a bad idea...

Cc: stable@vger.kernel.org # v4.1+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

BUG= chromium:698561 
TEST=compile

(cherry picked from commit 5a1c7f47da9b32d0671e776b0f388095b7f91e2e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

Change-Id: Ie6d1afb4914a30da5bcbf0097d29d32464cdbcec
Reviewed-on: https://chromium-review.googlesource.com/453124
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 48006f459bde44f7fb6d92ee909246b347d68b7d)
Reviewed-on: https://chromium-review.googlesource.com/453401

[modify] https://crrev.com/67ae5c488c2742b0e07052e3b4188ee374afe0e3/fs/ext4/symlink.c

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 16 2017

Labels: merge-merged-release-R58-9334.B-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/317806e47a7ac859327deacb9df2e7b9e6e8b8ad

commit 317806e47a7ac859327deacb9df2e7b9e6e8b8ad
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date: Thu Mar 16 23:34:01 2017

UPSTREAM: ext4: fix an endianness bug in ext4_encrypted_follow_link()

applying le32_to_cpu() to 16bit value is a bad idea...

Cc: stable@vger.kernel.org # v4.1+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

BUG= chromium:698561 
TEST=compile

(cherry picked from commit 5a1c7f47da9b32d0671e776b0f388095b7f91e2e)
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>

Change-Id: Ie6d1afb4914a30da5bcbf0097d29d32464cdbcec
Reviewed-on: https://chromium-review.googlesource.com/453124
Commit-Ready: Gwendal Grignou <gwendal@chromium.org>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 48006f459bde44f7fb6d92ee909246b347d68b7d)
Reviewed-on: https://chromium-review.googlesource.com/453401
(cherry picked from commit 67ae5c488c2742b0e07052e3b4188ee374afe0e3)
Reviewed-on: https://chromium-review.googlesource.com/456791
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Commit-Queue: Gwendal Grignou <gwendal@chromium.org>

[modify] https://crrev.com/317806e47a7ac859327deacb9df2e7b9e6e8b8ad/fs/ext4/symlink.c

Comment 15 by uekawa@google.com, Mar 29 2017

is this done or is there more changes to come?

Comment 16 by uekawa@google.com, Mar 30 2017

Labels: -Pri-2 Pri-1
https://chromium-review.googlesource.com/c/453125/ is the pending change.

Comment 17 by uekawa@google.com, Apr 1 2017

Labels: ReleaseBlock-Dev
We shouldn't push veyron + dev + ARC++ + ext4 crypto without a fix or we'll see dogfood devices with kernel crash at login and ARC++ startup, marking as ReleaseBlock-Dev to flag this issue.

Labels: OS-Chrome
Project Member

Comment 19 by bugdroid1@chromium.org, Apr 3 2017

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/679a05cfa6c868517d48f66c7f8052f5c2ef9535

commit 679a05cfa6c868517d48f66c7f8052f5c2ef9535
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 22:41:44 2017

UPSTREAM: switch befs long symlinks to page_symlink_operations

just give them the right ->readpage()...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 11803f97f0da4487ab947a975e5817fdc62a23e0)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: Ibaaac051182c420336ceeba2f76175181e752dc1
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462018
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/679a05cfa6c868517d48f66c7f8052f5c2ef9535/fs/befs/linuxvfs.c

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d3ed57554245471e2c72d4dde890b3954baa221d

commit d3ed57554245471e2c72d4dde890b3954baa221d
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 22:41:45 2017

UPSTREAM: ufs: get rid of ->setattr() for symlinks

It was to needed for a couple of months in 2010, until UFS
quota support got dropped.  Since then it's equivalent to
simple_setattr() (i.e. the default) for everything except the
regular files.  And dropping it there allows to convert all
UFS symlinks to {page,simple}_symlink_inode_operations, getting
rid of fs/ufs/symlink.c completely.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 9cdce3c074fbd7083923f15225e112a91daff8ed)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: I9a56b9f3aed7eacd009758e36a246e6e2d4c5bf6
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462079
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/d3ed57554245471e2c72d4dde890b3954baa221d/fs/ufs/Makefile
[modify] https://crrev.com/d3ed57554245471e2c72d4dde890b3954baa221d/fs/ufs/namei.c
[modify] https://crrev.com/d3ed57554245471e2c72d4dde890b3954baa221d/fs/ufs/inode.c
[modify] https://crrev.com/d3ed57554245471e2c72d4dde890b3954baa221d/fs/ufs/ufs.h
[delete] https://crrev.com/679a05cfa6c868517d48f66c7f8052f5c2ef9535/fs/ufs/symlink.c

Project Member

Comment 21 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9469e600fdf8e3a2f669a0f614dff775780bd27b

commit 9469e600fdf8e3a2f669a0f614dff775780bd27b
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 22:41:46 2017

UPSTREAM: udf: don't duplicate page_symlink_inode_operations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit c73119c58fef2590e0a2bef959a12cff7a07874b)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: Idcd1ea0a4c60ec424a885fbc187587395c17fdde
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462080
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/9469e600fdf8e3a2f669a0f614dff775780bd27b/fs/udf/inode.c
[modify] https://crrev.com/9469e600fdf8e3a2f669a0f614dff775780bd27b/fs/udf/udfdecl.h
[modify] https://crrev.com/9469e600fdf8e3a2f669a0f614dff775780bd27b/fs/udf/namei.c

Project Member

Comment 22 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/fb6b65cdf41f00795e90f039a9e7b7eb0ef433f8

commit fb6b65cdf41f00795e90f039a9e7b7eb0ef433f8
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 22:41:47 2017

UPSTREAM: logfs: don't duplicate page_symlink_inode_operations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit fb417f13aec5f202d35fce9bc7b654e1d3a749e8)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: I94c63aa0984626722bbf7d5f36ba526db671b20a
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462081
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/fb6b65cdf41f00795e90f039a9e7b7eb0ef433f8/fs/logfs/dir.c
[modify] https://crrev.com/fb6b65cdf41f00795e90f039a9e7b7eb0ef433f8/fs/logfs/inode.c
[modify] https://crrev.com/fb6b65cdf41f00795e90f039a9e7b7eb0ef433f8/fs/logfs/logfs.h

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/bf43cc261adec795cfe6df3e3791c441fe54eca1

commit bf43cc261adec795cfe6df3e3791c441fe54eca1
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 22:41:48 2017

UPSTREAM: namei: page_getlink() and page_follow_link_light() are the same thing

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit aa80deab33a8fb180e718f5e45514db19aade165)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: I6be63e2c402e260a42105b5a581b2df7e89827ea
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462082
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/bf43cc261adec795cfe6df3e3791c441fe54eca1/fs/namei.c

Project Member

Comment 24 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/2133595890d3a142a594d005c6fee390885f0c9f

commit 2133595890d3a142a594d005c6fee390885f0c9f
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 22:41:49 2017

UPSTREAM: don't put symlink bodies in pagecache into highmem

kmap() in page_follow_link_light() needed to go - allowing to hold
an arbitrary number of kmaps for long is a great way to deadlocking
the system.

new helper (inode_nohighmem(inode)) needs to be used for pagecache
symlinks inodes; done for all in-tree cases.  page_follow_link_light()
instrumented to yell about anything missed.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 21fc61c73c3903c4c312d0802da01ec2b323d174)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: Id2d85a94b3836aa1a36b530aecc7df444f0cebad
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462083
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/affs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/nfs/symlink.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/reiserfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/freevxfs/vxfs_inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/afs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ufs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/affs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ext4/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/logfs/dir.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/efs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ext2/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ocfs2/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/udf/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/Documentation/filesystems/porting
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/reiserfs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/hpfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/isofs/rock.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/coda/cnode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/affs/symlink.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ext4/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/jfs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/jfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/logfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/hugetlbfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/udf/symlink.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/nilfs2/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ncpfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/squashfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ufs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/f2fs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/efs/symlink.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/hfsplus/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/exofs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/nfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/nilfs2/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/befs/linuxvfs.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/include/linux/fs.h
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/isofs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/hpfs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ext2/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ramfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ext4/symlink.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/qnx6/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/btrfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/cramfs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/coda/symlink.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/udf/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/qnx4/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/exofs/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/romfs/super.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/sysv/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/ocfs2/namei.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/f2fs/inode.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/mm/shmem.c
[modify] https://crrev.com/2133595890d3a142a594d005c6fee390885f0c9f/fs/minix/inode.c

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/7d6875e5433aaf543e5d10df9b30817ad0417b5d

commit 7d6875e5433aaf543e5d10df9b30817ad0417b5d
Author: Gwendal Grignou <gwendal@chromium.org>
Date: Mon Apr 03 23:04:16 2017

BACKPORT: don't put symlink bodies in pagecache into highmem

kmap() in page_follow_link_light() needed to go - allowing to hold
an arbitrary number of kmaps for long is a great way to deadlocking
the system.

new helper (inode_nohighmem(inode)) needs to be used for pagecache
symlinks inodes; done for all in-tree cases.  page_follow_link_light()
instrumented to yell about anything missed.

(backported from commit 21fc61c73c3903c4c312d0802da01ec2b323d174,
focus on ext4 only.)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.

Change-Id: I6cfb7a8a1589f5edb52e071976b8e39e7d9300ba
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/466552

[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/ext4/inode.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/nfs/symlink.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/ext4/symlink.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/ufs/namei.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/include/linux/fs.h
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/udf/symlink.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/namei.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/ext4/namei.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/inode.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/ufs/inode.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/squashfs/inode.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/mm/shmem.c
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/Documentation/filesystems/porting
[modify] https://crrev.com/7d6875e5433aaf543e5d10df9b30817ad0417b5d/fs/isofs/rock.c

Project Member

Comment 26 by bugdroid1@chromium.org, Apr 3 2017

Labels: merge-merged-release-R58-9334.B-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/8dd930dd97658c3050394e8a5b55353f8a0c7945

commit 8dd930dd97658c3050394e8a5b55353f8a0c7945
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 23:16:30 2017

UPSTREAM: ufs: get rid of ->setattr() for symlinks

It was to needed for a couple of months in 2010, until UFS
quota support got dropped.  Since then it's equivalent to
simple_setattr() (i.e. the default) for everything except the
regular files.  And dropping it there allows to convert all
UFS symlinks to {page,simple}_symlink_inode_operations, getting
rid of fs/ufs/symlink.c completely.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 9cdce3c074fbd7083923f15225e112a91daff8ed)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: I9a56b9f3aed7eacd009758e36a246e6e2d4c5bf6
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462079
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit d3ed57554245471e2c72d4dde890b3954baa221d)
Reviewed-on: https://chromium-review.googlesource.com/466555

[modify] https://crrev.com/8dd930dd97658c3050394e8a5b55353f8a0c7945/fs/ufs/Makefile
[modify] https://crrev.com/8dd930dd97658c3050394e8a5b55353f8a0c7945/fs/ufs/namei.c
[modify] https://crrev.com/8dd930dd97658c3050394e8a5b55353f8a0c7945/fs/ufs/inode.c
[modify] https://crrev.com/8dd930dd97658c3050394e8a5b55353f8a0c7945/fs/ufs/ufs.h
[delete] https://crrev.com/e6abee9cbe4099c8ec6353e32f5077b6bb803121/fs/ufs/symlink.c

Project Member

Comment 27 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/6c601cfbb3e7a9360f2f433fdfd0e4dfb3fd9f4f

commit 6c601cfbb3e7a9360f2f433fdfd0e4dfb3fd9f4f
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 23:16:34 2017

UPSTREAM: switch befs long symlinks to page_symlink_operations

just give them the right ->readpage()...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 11803f97f0da4487ab947a975e5817fdc62a23e0)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: Ibaaac051182c420336ceeba2f76175181e752dc1
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462018
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 679a05cfa6c868517d48f66c7f8052f5c2ef9535)
Reviewed-on: https://chromium-review.googlesource.com/466554

[modify] https://crrev.com/6c601cfbb3e7a9360f2f433fdfd0e4dfb3fd9f4f/fs/befs/linuxvfs.c

Project Member

Comment 28 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/171b086e2acbc48aa4d260bb0455068024517112

commit 171b086e2acbc48aa4d260bb0455068024517112
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 23:16:38 2017

UPSTREAM: logfs: don't duplicate page_symlink_inode_operations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit fb417f13aec5f202d35fce9bc7b654e1d3a749e8)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: I94c63aa0984626722bbf7d5f36ba526db671b20a
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462081
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit fb6b65cdf41f00795e90f039a9e7b7eb0ef433f8)
Reviewed-on: https://chromium-review.googlesource.com/466557

[modify] https://crrev.com/171b086e2acbc48aa4d260bb0455068024517112/fs/logfs/dir.c
[modify] https://crrev.com/171b086e2acbc48aa4d260bb0455068024517112/fs/logfs/inode.c
[modify] https://crrev.com/171b086e2acbc48aa4d260bb0455068024517112/fs/logfs/logfs.h

Project Member

Comment 29 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/d20f3c3de498ee10dc2090339f4ccbb08c9e1720

commit d20f3c3de498ee10dc2090339f4ccbb08c9e1720
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 23:16:42 2017

UPSTREAM: udf: don't duplicate page_symlink_inode_operations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit c73119c58fef2590e0a2bef959a12cff7a07874b)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: Idcd1ea0a4c60ec424a885fbc187587395c17fdde
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462080
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 9469e600fdf8e3a2f669a0f614dff775780bd27b)
Reviewed-on: https://chromium-review.googlesource.com/466556

[modify] https://crrev.com/d20f3c3de498ee10dc2090339f4ccbb08c9e1720/fs/udf/inode.c
[modify] https://crrev.com/d20f3c3de498ee10dc2090339f4ccbb08c9e1720/fs/udf/udfdecl.h
[modify] https://crrev.com/d20f3c3de498ee10dc2090339f4ccbb08c9e1720/fs/udf/namei.c

Project Member

Comment 30 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/db8718f6415ddc70b29f65f28ccfd05c4399ba4d

commit db8718f6415ddc70b29f65f28ccfd05c4399ba4d
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon Apr 03 23:19:19 2017

UPSTREAM: namei: page_getlink() and page_follow_link_light() are the same thing

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit aa80deab33a8fb180e718f5e45514db19aade165)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: I6be63e2c402e260a42105b5a581b2df7e89827ea
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462082
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit bf43cc261adec795cfe6df3e3791c441fe54eca1)
Reviewed-on: https://chromium-review.googlesource.com/466558

[modify] https://crrev.com/db8718f6415ddc70b29f65f28ccfd05c4399ba4d/fs/namei.c

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/cb3e23acac725a4ccdec1a7a7dedd94052317180

commit cb3e23acac725a4ccdec1a7a7dedd94052317180
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Tue Apr 04 01:14:34 2017

UPSTREAM: don't put symlink bodies in pagecache into highmem

kmap() in page_follow_link_light() needed to go - allowing to hold
an arbitrary number of kmaps for long is a great way to deadlocking
the system.

new helper (inode_nohighmem(inode)) needs to be used for pagecache
symlinks inodes; done for all in-tree cases.  page_follow_link_light()
instrumented to yell about anything missed.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
(cherry picked from commit 21fc61c73c3903c4c312d0802da01ec2b323d174)

BUG= chromium:698561 
TEST=Compile (a simpler version for 3.14 passes xfstest generic/068)

Change-Id: Id2d85a94b3836aa1a36b530aecc7df444f0cebad
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/462083
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 2133595890d3a142a594d005c6fee390885f0c9f)
Reviewed-on: https://chromium-review.googlesource.com/466858

[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/affs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/nfs/symlink.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/reiserfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/freevxfs/vxfs_inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/afs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ufs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/affs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ext4/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/logfs/dir.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/efs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ext2/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ocfs2/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/udf/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/Documentation/filesystems/porting
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/reiserfs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/hpfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/isofs/rock.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/coda/cnode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/affs/symlink.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ext4/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/jfs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/jfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/logfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/hugetlbfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/udf/symlink.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/nilfs2/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ncpfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/squashfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ufs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/f2fs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/efs/symlink.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/hfsplus/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/exofs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/nfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/nilfs2/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/befs/linuxvfs.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/include/linux/fs.h
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/isofs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/hpfs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ext2/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ramfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ext4/symlink.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/qnx6/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/btrfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/cramfs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/coda/symlink.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/udf/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/qnx4/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/exofs/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/romfs/super.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/sysv/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/ocfs2/namei.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/f2fs/inode.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/mm/shmem.c
[modify] https://crrev.com/cb3e23acac725a4ccdec1a7a7dedd94052317180/fs/minix/inode.c

Project Member

Comment 32 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/48e9cfaae21dec55a571f354a4edfc52f77073bd

commit 48e9cfaae21dec55a571f354a4edfc52f77073bd
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Tue Apr 04 02:09:24 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.

Change-Id: Ie6283bcaa725f01c5788e7e0b72c73b64fdcff43
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453125
Reviewed-by: Guenter Roeck <groeck@chromium.org>

[modify] https://crrev.com/48e9cfaae21dec55a571f354a4edfc52f77073bd/fs/ext4/symlink.c

Project Member

Comment 33 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b343040dfcc919f7c885304560faead9e3bcc411

commit b343040dfcc919f7c885304560faead9e3bcc411
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Tue Apr 04 23:27:23 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.

Change-Id: Ie6283bcaa725f01c5788e7e0b72c73b64fdcff43
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453125
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 48e9cfaae21dec55a571f354a4edfc52f77073bd)
Reviewed-on: https://chromium-review.googlesource.com/468046

[modify] https://crrev.com/b343040dfcc919f7c885304560faead9e3bcc411/fs/ext4/symlink.c

Project Member

Comment 34 by bugdroid1@chromium.org, Apr 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/29ae69883a2191a8ebdd834085e1679d174345ba

commit 29ae69883a2191a8ebdd834085e1679d174345ba
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Wed Apr 05 18:21:26 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.

Change-Id: Ie6283bcaa725f01c5788e7e0b72c73b64fdcff43
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/453125
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 48e9cfaae21dec55a571f354a4edfc52f77073bd)
Reviewed-on: https://chromium-review.googlesource.com/468046
(cherry picked from commit b343040dfcc919f7c885304560faead9e3bcc411)
Reviewed-on: https://chromium-review.googlesource.com/469045

[modify] https://crrev.com/29ae69883a2191a8ebdd834085e1679d174345ba/fs/ext4/symlink.c

reverted due to crashing caroline: 
https://chromium-review.googlesource.com/c/469167/

Comment 36 by uekawa@google.com, Apr 7 2017

https://chromium-review.googlesource.com/c/469174/ revert for 3.14 in CQ still

Comment 37 by uekawa@google.com, Apr 7 2017

Blockedon: 708693
Status: Fixed (was: Started)
Marking this as fixed so that Test team can verify

Comment 39 by uekawa@google.com, Apr 8 2017

Status: Started (was: Fixed)
the change was reverted https://chromium-review.googlesource.com/#/c/469174/

Project Member

Comment 40 by bugdroid1@chromium.org, Apr 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/5432cbe109cb2600fd61a1c4b8cefac97598b700

commit 5432cbe109cb2600fd61a1c4b8cefac97598b700
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Sat Apr 08 00:56:50 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

Relanding of c/453125/

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.
Test on 3.14 veyron and samus
Test on 3.18 cyan
Test that login

Change-Id: Ie69118eea48a40ec3abfd22c93d9ebd1711ca037
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/470026
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>

[modify] https://crrev.com/5432cbe109cb2600fd61a1c4b8cefac97598b700/fs/ext4/symlink.c

Project Member

Comment 41 by bugdroid1@chromium.org, Apr 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/751ae71363f7622df37767eb33c3b9032128bdf5

commit 751ae71363f7622df37767eb33c3b9032128bdf5
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Sat Apr 08 04:11:00 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

Relanding of c/453125/

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.
Test on 3.14 veyron and samus
Test on 3.18 cyan
Test that login

Change-Id: Ie69118eea48a40ec3abfd22c93d9ebd1711ca037
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/470026
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
(cherry picked from commit 5432cbe109cb2600fd61a1c4b8cefac97598b700)
Reviewed-on: https://chromium-review.googlesource.com/472186

[modify] https://crrev.com/751ae71363f7622df37767eb33c3b9032128bdf5/fs/ext4/symlink.c

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/7c61484e13294b65602213ae04abb626bf8bb06b

commit 7c61484e13294b65602213ae04abb626bf8bb06b
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Sat Apr 08 12:37:18 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

Relanding of c/453125/

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.
Test on 3.14 veyron and samus
Test on 3.18 cyan
Test that login

Change-Id: Ie69118eea48a40ec3abfd22c93d9ebd1711ca037
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/470026
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
(cherry picked from commit 5432cbe109cb2600fd61a1c4b8cefac97598b700)
Reviewed-on: https://chromium-review.googlesource.com/472187

[modify] https://crrev.com/7c61484e13294b65602213ae04abb626bf8bb06b/fs/ext4/symlink.c

Project Member

Comment 43 by bugdroid1@chromium.org, Apr 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4afb3cacf11930d1c4e70ffa8b115ec4e0c1dea2

commit 4afb3cacf11930d1c4e70ffa8b115ec4e0c1dea2
Author: Zheng Liu <wenqing.lz@taobao.com>
Date: Sat Apr 08 16:34:45 2017

CHROMIUM: ext4: Copy symlink data from page

kmapping the page from d_inode->i_mapping like page_getlink() does not
work for ext4 crypto: the data will be put in a scatter gather list and
sent to the encryption engine.
Instead, copy the data to a bounce buffer, to be sure to have a logical
address to put in the sg list.

Relanding of c/453125/

BUG= chromium:698561 
TEST=xfstest generic/068 passes. It used to fail on first symlink.
Test on 3.14 veyron and samus
Test on 3.18 cyan
Test that login

Change-Id: Ie69118eea48a40ec3abfd22c93d9ebd1711ca037
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/470026
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
(cherry picked from commit 5432cbe109cb2600fd61a1c4b8cefac97598b700)
Reviewed-on: https://chromium-review.googlesource.com/472187
(cherry picked from commit 7c61484e13294b65602213ae04abb626bf8bb06b)
Reviewed-on: https://chromium-review.googlesource.com/472189

[modify] https://crrev.com/4afb3cacf11930d1c4e70ffa8b115ec4e0c1dea2/fs/ext4/symlink.c

Status: Fixed (was: Started)
Status: Verified (was: Fixed)

Sign in to add a comment