[PATCH 0/2][Oneiric][Precise][Quantal][SRU] Fix regression caused by commit 821f749

Colin King colin.king at canonical.com
Sat Sep 15 19:09:12 UTC 2012


From: Colin Ian King <colin.king at canonical.com>

BugLink: https://launchpad.net/bugs/1047261

SRU for Oneiric and Precise, and please apply to Quantal too.

== SRU Justification ==

== Impact ==

A regression was caused by commit:

821f749 eCryptfs: Revert to a writethrough cache model

That patch reverted some code (specifically, 32001d6f) that was
necessary to properly handle open() -> mmap() -> close() -> dirty pages
-> munmap(), because the lower file could be closed before the dirty
pages are written out.

This revert unfortunately causes errors:

ecryptfs_encrypt_page: Error attempting to write lower page

== Fix ==

Apply commits 7149f2558d5b5b988726662fe58b1c388337805b and
64e6651dcc10e9d2cc6230208a8e6c2cfd19ae18.

== Test Case ==

Can be tested on various file systems using the ecryptfs tests (from
lp:ecryptfs).

sudo mkdir /tmp/image /lower /upper
sudo ./tests/run_tests.sh -K -c safe -b 1000000 -D /tmp/image \
-l /lower -u /upper -f ext2,ext3,ext4,xfs,btrfs -t mmap-close.sh

Without the fix, this fails, with the fix it passes.


Tyler Hicks (2):
  eCryptfs: Write out all dirty pages just before releasing the lower
    file
  eCryptfs: Call lower ->flush() from ecryptfs_flush()

 fs/ecryptfs/file.c |   10 ++++++++--
 fs/ecryptfs/main.c |    1 +
 2 files changed, 9 insertions(+), 2 deletions(-)

-- 
1.7.10.4





More information about the kernel-team mailing list