diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/crypto/keyinfo.c | 16 | ||||
-rw-r--r-- | fs/ext4/super.c | 4 | ||||
-rw-r--r-- | fs/f2fs/inode.c | 2 | ||||
-rw-r--r-- | fs/ubifs/super.c | 4 |
4 files changed, 6 insertions, 20 deletions
diff --git a/fs/crypto/keyinfo.c b/fs/crypto/keyinfo.c index c115eac4b4cf..05f5ee1f0705 100644 --- a/fs/crypto/keyinfo.c +++ b/fs/crypto/keyinfo.c | |||
@@ -355,19 +355,9 @@ out: | |||
355 | } | 355 | } |
356 | EXPORT_SYMBOL(fscrypt_get_encryption_info); | 356 | EXPORT_SYMBOL(fscrypt_get_encryption_info); |
357 | 357 | ||
358 | void fscrypt_put_encryption_info(struct inode *inode, struct fscrypt_info *ci) | 358 | void fscrypt_put_encryption_info(struct inode *inode) |
359 | { | 359 | { |
360 | struct fscrypt_info *prev; | 360 | put_crypt_info(inode->i_crypt_info); |
361 | 361 | inode->i_crypt_info = NULL; | |
362 | if (ci == NULL) | ||
363 | ci = READ_ONCE(inode->i_crypt_info); | ||
364 | if (ci == NULL) | ||
365 | return; | ||
366 | |||
367 | prev = cmpxchg(&inode->i_crypt_info, ci, NULL); | ||
368 | if (prev != ci) | ||
369 | return; | ||
370 | |||
371 | put_crypt_info(ci); | ||
372 | } | 362 | } |
373 | EXPORT_SYMBOL(fscrypt_put_encryption_info); | 363 | EXPORT_SYMBOL(fscrypt_put_encryption_info); |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 7c46693a14d7..152d05d983f6 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -1069,9 +1069,7 @@ void ext4_clear_inode(struct inode *inode) | |||
1069 | jbd2_free_inode(EXT4_I(inode)->jinode); | 1069 | jbd2_free_inode(EXT4_I(inode)->jinode); |
1070 | EXT4_I(inode)->jinode = NULL; | 1070 | EXT4_I(inode)->jinode = NULL; |
1071 | } | 1071 | } |
1072 | #ifdef CONFIG_EXT4_FS_ENCRYPTION | 1072 | fscrypt_put_encryption_info(inode); |
1073 | fscrypt_put_encryption_info(inode, NULL); | ||
1074 | #endif | ||
1075 | } | 1073 | } |
1076 | 1074 | ||
1077 | static struct inode *ext4_nfs_get_inode(struct super_block *sb, | 1075 | static struct inode *ext4_nfs_get_inode(struct super_block *sb, |
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index b4c4f2b25304..22a5607a0518 100644 --- a/fs/f2fs/inode.c +++ b/fs/f2fs/inode.c | |||
@@ -569,7 +569,7 @@ no_delete: | |||
569 | !exist_written_data(sbi, inode->i_ino, ORPHAN_INO)); | 569 | !exist_written_data(sbi, inode->i_ino, ORPHAN_INO)); |
570 | } | 570 | } |
571 | out_clear: | 571 | out_clear: |
572 | fscrypt_put_encryption_info(inode, NULL); | 572 | fscrypt_put_encryption_info(inode); |
573 | clear_inode(inode); | 573 | clear_inode(inode); |
574 | } | 574 | } |
575 | 575 | ||
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 0beb285b143d..b16ef162344a 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c | |||
@@ -379,9 +379,7 @@ out: | |||
379 | } | 379 | } |
380 | done: | 380 | done: |
381 | clear_inode(inode); | 381 | clear_inode(inode); |
382 | #ifdef CONFIG_UBIFS_FS_ENCRYPTION | 382 | fscrypt_put_encryption_info(inode); |
383 | fscrypt_put_encryption_info(inode, NULL); | ||
384 | #endif | ||
385 | } | 383 | } |
386 | 384 | ||
387 | static void ubifs_dirty_inode(struct inode *inode, int flags) | 385 | static void ubifs_dirty_inode(struct inode *inode, int flags) |