summaryrefslogtreecommitdiff
path: root/fs/ecryptfs/main.c
diff options
context:
space:
mode:
authorRoberto Sassu <roberto.sassu@polito.it>2011-03-21 16:00:55 +0100
committerTyler Hicks <tyhicks@linux.vnet.ibm.com>2011-03-28 01:49:43 -0500
commitb5695d04634fa4ccca7dcbc05bb4a66522f02e0b (patch)
tree568155380ea1b1fa3b9e68f68dd74cdd9d651229 /fs/ecryptfs/main.c
parent950983fc04e02232e0d25717903461578a755ebb (diff)
downloadlinux-b5695d04634fa4ccca7dcbc05bb4a66522f02e0b.tar.gz
linux-b5695d04634fa4ccca7dcbc05bb4a66522f02e0b.tar.xz
eCryptfs: write lock requested keys
A requested key is write locked in order to prevent modifications on the authentication token while it is being used. Signed-off-by: Roberto Sassu <roberto.sassu@polito.it> Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Diffstat (limited to 'fs/ecryptfs/main.c')
-rw-r--r--fs/ecryptfs/main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index 520d05f5ad01..c27c0ecf90bc 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -254,8 +254,10 @@ static int ecryptfs_init_global_auth_toks(
"option: [%s]\n", global_auth_tok->sig);
global_auth_tok->flags |= ECRYPTFS_AUTH_TOK_INVALID;
goto out;
- } else
+ } else {
global_auth_tok->flags &= ~ECRYPTFS_AUTH_TOK_INVALID;
+ up_write(&(global_auth_tok->global_auth_tok_key)->sem);
+ }
}
out:
return rc;