diff options
Diffstat (limited to 'fs/hpfs/inode.c')
-rw-r--r-- | fs/hpfs/inode.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/hpfs/inode.c b/fs/hpfs/inode.c index 3f3b397fd4e6..56f0da1cfd10 100644 --- a/fs/hpfs/inode.c +++ b/fs/hpfs/inode.c | |||
@@ -302,11 +302,13 @@ void hpfs_write_if_changed(struct inode *inode) | |||
302 | hpfs_write_inode(inode); | 302 | hpfs_write_inode(inode); |
303 | } | 303 | } |
304 | 304 | ||
305 | void hpfs_delete_inode(struct inode *inode) | 305 | void hpfs_evict_inode(struct inode *inode) |
306 | { | 306 | { |
307 | truncate_inode_pages(&inode->i_data, 0); | 307 | truncate_inode_pages(&inode->i_data, 0); |
308 | lock_kernel(); | 308 | end_writeback(inode); |
309 | hpfs_remove_fnode(inode->i_sb, inode->i_ino); | 309 | if (!inode->i_nlink) { |
310 | unlock_kernel(); | 310 | lock_kernel(); |
311 | clear_inode(inode); | 311 | hpfs_remove_fnode(inode->i_sb, inode->i_ino); |
312 | unlock_kernel(); | ||
313 | } | ||
312 | } | 314 | } |