aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/hugetlbfs/inode.c38
1 files changed, 1 insertions, 37 deletions
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 2b9d1bee9220..ffdad4e64671 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -229,42 +229,6 @@ static void hugetlbfs_delete_inode(struct inode *inode)
229 clear_inode(inode); 229 clear_inode(inode);
230} 230}
231 231
232static void hugetlbfs_do_delete_inode(struct inode *inode)
233{
234 struct super_operations *op = inode->i_sb->s_op;
235
236 list_del_init(&inode->i_list);
237 list_del_init(&inode->i_sb_list);
238 inode->i_state |= I_FREEING;
239 inodes_stat.nr_inodes--;
240 spin_unlock(&inode_lock);
241
242 security_inode_delete(inode);
243
244 if (op->delete_inode) {
245 void (*delete)(struct inode *) = op->delete_inode;
246 if (!is_bad_inode(inode))
247 DQUOT_INIT(inode);
248 /* Filesystems implementing their own
249 * s_op->delete_inode are required to call
250 * truncate_inode_pages and clear_inode()
251 * internally
252 */
253 delete(inode);
254 } else {
255 truncate_inode_pages(&inode->i_data, 0);
256 clear_inode(inode);
257 }
258
259 spin_lock(&inode_lock);
260 hlist_del_init(&inode->i_hash);
261 spin_unlock(&inode_lock);
262 wake_up_inode(inode);
263 if (inode->i_state != I_CLEAR)
264 BUG();
265 destroy_inode(inode);
266}
267
268static void hugetlbfs_forget_inode(struct inode *inode) 232static void hugetlbfs_forget_inode(struct inode *inode)
269{ 233{
270 struct super_block *super_block = inode->i_sb; 234 struct super_block *super_block = inode->i_sb;
@@ -301,7 +265,7 @@ out_truncate:
301static void hugetlbfs_drop_inode(struct inode *inode) 265static void hugetlbfs_drop_inode(struct inode *inode)
302{ 266{
303 if (!inode->i_nlink) 267 if (!inode->i_nlink)
304 hugetlbfs_do_delete_inode(inode); 268 generic_delete_inode(inode);
305 else 269 else
306 hugetlbfs_forget_inode(inode); 270 hugetlbfs_forget_inode(inode);
307} 271}