Browse Source

switch hpfs to ->evict_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 15 years ago
parent
commit
ea54400920
3 changed files with 9 additions and 7 deletions
  1. 1 1
      fs/hpfs/hpfs_fn.h
  2. 7 5
      fs/hpfs/inode.c
  3. 1 1
      fs/hpfs/super.c

+ 1 - 1
fs/hpfs/hpfs_fn.h

@@ -281,7 +281,7 @@ void hpfs_write_inode(struct inode *);
 void hpfs_write_inode_nolock(struct inode *);
 void hpfs_write_inode_nolock(struct inode *);
 int hpfs_setattr(struct dentry *, struct iattr *);
 int hpfs_setattr(struct dentry *, struct iattr *);
 void hpfs_write_if_changed(struct inode *);
 void hpfs_write_if_changed(struct inode *);
-void hpfs_delete_inode(struct inode *);
+void hpfs_evict_inode(struct inode *);
 
 
 /* map.c */
 /* map.c */
 
 

+ 7 - 5
fs/hpfs/inode.c

@@ -302,11 +302,13 @@ void hpfs_write_if_changed(struct inode *inode)
 		hpfs_write_inode(inode);
 		hpfs_write_inode(inode);
 }
 }
 
 
-void hpfs_delete_inode(struct inode *inode)
+void hpfs_evict_inode(struct inode *inode)
 {
 {
 	truncate_inode_pages(&inode->i_data, 0);
 	truncate_inode_pages(&inode->i_data, 0);
-	lock_kernel();
-	hpfs_remove_fnode(inode->i_sb, inode->i_ino);
-	unlock_kernel();
-	clear_inode(inode);
+	end_writeback(inode);
+	if (!inode->i_nlink) {
+		lock_kernel();
+		hpfs_remove_fnode(inode->i_sb, inode->i_ino);
+		unlock_kernel();
+	}
 }
 }

+ 1 - 1
fs/hpfs/super.c

@@ -450,7 +450,7 @@ static const struct super_operations hpfs_sops =
 {
 {
 	.alloc_inode	= hpfs_alloc_inode,
 	.alloc_inode	= hpfs_alloc_inode,
 	.destroy_inode	= hpfs_destroy_inode,
 	.destroy_inode	= hpfs_destroy_inode,
-	.delete_inode	= hpfs_delete_inode,
+	.evict_inode	= hpfs_evict_inode,
 	.put_super	= hpfs_put_super,
 	.put_super	= hpfs_put_super,
 	.statfs		= hpfs_statfs,
 	.statfs		= hpfs_statfs,
 	.remount_fs	= hpfs_remount_fs,
 	.remount_fs	= hpfs_remount_fs,