eCryptfs: Revert to a writethrough cache model
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Colin Ian King | ||
Oneiric |
Fix Released
|
Undecided
|
Colin Ian King | ||
Precise |
Fix Released
|
Undecided
|
Colin Ian King | ||
Quantal |
Fix Released
|
Undecided
|
Colin Ian King |
Bug Description
A change was made about a year ago to get eCryptfs to better utilize its
page cache during writes. The idea was to do the page encryption
operations during page writeback, rather than doing them when initially
writing into the page cache, to reduce the number of page encryption
operations during sequential writes. This meant that the encrypted page
would only be written to the lower filesystem during page writeback,
which was a change from how eCryptfs had previously wrote to the lower
filesystem in ecryptfs_
The change caused a few eCryptfs-internal bugs that were shook out.
Unfortunately, more grave side effects have been identified that will
force changes outside of eCryptfs. Because the lower filesystem isn't
consulted until page writeback, eCryptfs has no way to pass lower write
errors (ENOSPC, mainly) back to userspace. Additionaly, it was reported
that quotas could be bypassed because of the way eCryptfs may sometimes
open the lower filesystem using a privileged kthread.
It would be nice to resolve the latest issues, but it is best if the
eCryptfs commits be reverted to the old behavior in the meantime.
This reverts:
32001d6f "eCryptfs: Flush file in vma close"
5be79de2 "eCryptfs: Flush dirty pages in setattr"
57db4e8d "ecryptfs: modify write path to encrypt page in writepage"
Related branches
Changed in linux (Ubuntu Quantal): | |
assignee: | nobody → Colin King (colin-king) |
status: | New → Fix Committed |
Changed in linux (Ubuntu Precise): | |
assignee: | nobody → Colin King (colin-king) |
status: | New → In Progress |
Changed in linux (Ubuntu Oneiric): | |
assignee: | nobody → Colin King (colin-king) |
status: | New → In Progress |
Changed in linux (Ubuntu Precise): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Oneiric): | |
status: | In Progress → Fix Committed |
This bug was fixed in the package linux - 3.5.0-9.9
---------------
linux (3.5.0-9.9) quantal-proposed; urgency=low
[ Daniel P. Berrange ]
* SAUCE: (drop after 3.6) Forbid invocation of kexec_load() outside
initial PID namespace
- LP: #1034125
[ Douglas Bagnall ]
* SAUCE: Unlock the rc_dev lock when the raw device is missing
- LP: #1015836
[ Ike Panhc ]
* [Config] Enable EDAC/CLK for highbank
- LP: #1008345
[ Leann Ogasawara ]
* Revert "ubuntu: AUFS -- reenable"
[ Rob Herring ]
* SAUCE: net: calxedaxgmac: add write barriers around setting owner bit
- LP: #1008345
* SAUCE: ARM smp_twd: add back "arm,smp-twd" compatible property
- LP: #1008345
* SAUCE: ARM: highbank: add soft power and reset key event handling
- LP: #1008345
* SAUCE: ARM: highbank: use writel_relaxed variant for pwr requests
- LP: #1008345
* SAUCE: ahci: un-staticize ahci_dev_classify
- LP: #1008345
* SAUCE: ahci_platform: add custom hard reset for Calxeda ahci ctrlr
- LP: #1008345
[ Upstream Kernel Changes ]
* rt2x00: Add support for BUFFALO WLI-UC-GNM2 to rt2800usb.
- LP: #871904
* Avoid sysfs oops when an rc_dev's raw device is absent
- LP: #1015836
* eCryptfs: Copy up POSIX ACL and read-only flags from lower mount
* clk: add DT clock binding support
- LP: #1008345
* clk: add DT fixed-clock binding support
- LP: #1008345
* clk: add highbank clock support
* edac: add support for Calxeda highbank memory controller
- LP: #1008345
* edac: add support for Calxeda highbank L2 cache ecc
- LP: #1008345
* net: calxedaxgmac: enable rx cut-thru mode
- LP: #1008345
* net: calxedaxgmac: fix hang on rx refill
- LP: #1008345
* eCryptfs: Revert to a writethrough cache model
- LP: #1034012
* eCryptfs: Initialize empty lower files when opening them
- LP: #911507
* eCryptfs: Unlink lower inode when ecryptfs_create() fails
- LP: #872905
-- Leann Ogasawara <email address hidden> Wed, 08 Aug 2012 08:39:42 -0700