]> git.baikalelectronics.ru Git - kernel.git/commit
eCryptfs: Make truncate path killable
authorTyler Hicks <tyhicks@canonical.com>
Thu, 19 Jan 2012 00:30:04 +0000 (18:30 -0600)
committerTyler Hicks <tyhicks@canonical.com>
Wed, 25 Jan 2012 20:43:40 +0000 (14:43 -0600)
commitedda3a8eb973b837047d8afbd1b57a1f6cc977f3
tree1cfcfdaeda81e1d17725bdd1e1a964cc5a0b40b5
parentc4e39fc9846e4acb900186ec5f2ccb9d7b88df37
eCryptfs: Make truncate path killable

ecryptfs_write() handles the truncation of eCryptfs inodes. It grabs a
page, zeroes out the appropriate portions, and then encrypts the page
before writing it to the lower filesystem. It was unkillable and due to
the lack of sparse file support could result in tying up a large portion
of system resources, while encrypting pages of zeros, with no way for
the truncate operation to be stopped from userspace.

This patch adds the ability for ecryptfs_write() to detect a pending
fatal signal and return as gracefully as possible. The intent is to
leave the lower file in a useable state, while still allowing a user to
break out of the encryption loop. If a pending fatal signal is detected,
the eCryptfs inode size is updated to reflect the modified inode size
and then -EINTR is returned.

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Cc: <stable@vger.kernel.org>
fs/ecryptfs/read_write.c