.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /** |
---|
2 | 3 | * eCryptfs: Linux filesystem encryption layer |
---|
3 | 4 | * |
---|
.. | .. |
---|
6 | 7 | * Copyright (C) 2004-2006 International Business Machines Corp. |
---|
7 | 8 | * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> |
---|
8 | 9 | * Michael C. Thompson <mcthomps@us.ibm.com> |
---|
9 | | - * |
---|
10 | | - * This program is free software; you can redistribute it and/or |
---|
11 | | - * modify it under the terms of the GNU General Public License as |
---|
12 | | - * published by the Free Software Foundation; either version 2 of the |
---|
13 | | - * License, or (at your option) any later version. |
---|
14 | | - * |
---|
15 | | - * This program is distributed in the hope that it will be useful, but |
---|
16 | | - * WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
17 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
18 | | - * General Public License for more details. |
---|
19 | | - * |
---|
20 | | - * You should have received a copy of the GNU General Public License |
---|
21 | | - * along with this program; if not, write to the Free Software |
---|
22 | | - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
---|
23 | | - * 02111-1307, USA. |
---|
24 | 10 | */ |
---|
25 | 11 | |
---|
26 | 12 | #include <linux/fs.h> |
---|
.. | .. |
---|
67 | 53 | return inode; |
---|
68 | 54 | } |
---|
69 | 55 | |
---|
70 | | -static void ecryptfs_i_callback(struct rcu_head *head) |
---|
| 56 | +static void ecryptfs_free_inode(struct inode *inode) |
---|
71 | 57 | { |
---|
72 | | - struct inode *inode = container_of(head, struct inode, i_rcu); |
---|
73 | 58 | struct ecryptfs_inode_info *inode_info; |
---|
74 | 59 | inode_info = ecryptfs_inode_to_private(inode); |
---|
75 | 60 | |
---|
.. | .. |
---|
92 | 77 | inode_info = ecryptfs_inode_to_private(inode); |
---|
93 | 78 | BUG_ON(inode_info->lower_file); |
---|
94 | 79 | ecryptfs_destroy_crypt_stat(&inode_info->crypt_stat); |
---|
95 | | - call_rcu(&inode->i_rcu, ecryptfs_i_callback); |
---|
96 | 80 | } |
---|
97 | 81 | |
---|
98 | 82 | /** |
---|
.. | .. |
---|
186 | 170 | const struct super_operations ecryptfs_sops = { |
---|
187 | 171 | .alloc_inode = ecryptfs_alloc_inode, |
---|
188 | 172 | .destroy_inode = ecryptfs_destroy_inode, |
---|
| 173 | + .free_inode = ecryptfs_free_inode, |
---|
189 | 174 | .statfs = ecryptfs_statfs, |
---|
190 | 175 | .remount_fs = NULL, |
---|
191 | 176 | .evict_inode = ecryptfs_evict_inode, |
---|