Function report |
Source Code:fs\crypto\keyring.c |
Create Date:2022-07-28 20:23:55 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Try to remove an fscrypt master encryption key
Proto:static int do_remove_key(struct file *filp, void __user *_uarg, bool all_users)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct file * | filp | |
| void __user * | _uarg | |
| bool | all_users |
| 766 | status_flags = 0 |
| 770 | If copy_from_user( & arg, uarg, size of arg ) Then Return -EFAULT |
| 773 | If Not valid_key_spec( & key_spec) Then Return -EINVAL |
| 793 | lock for writing |
| 797 | If all_users Then err = keyring_clear(Keyring which contains a key of type 'key_type_fscrypt_user' for each* user who has added this key) |
| 799 | Else err = Remove the current user's "key" from ->mk_users.* The master key's key->sem must be held for write.* Returns 0 if removed, -ENOKEY if not found, or another -errno code. |
| 801 | If err Then |
| 803 | Go to out_put_key |
| 805 | If nr_leaves_on_tree != 0 Then |
| 813 | err = 0 |
| 815 | Go to out_put_key |
| 820 | dead = false |
| 822 | lock for writing |
| 828 | If dead Then |
| 833 | key_invalidate(key) |
| 834 | err = 0 |
| 835 | Else |
| 837 | err = try_to_lock_encrypted_files(sb, mk) |
| 841 | err = 0 |
| 850 | out_put_key : |
| 852 | If err == 0 Then err = Write a simple value into user space(status_flags, & utput ) |
| 854 | Return err |
| Name | Describe |
|---|---|
| fscrypt_ioctl_remove_key | |
| fscrypt_ioctl_remove_key_all_users |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |