switch smbfs to evict_inode()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 5 Jun 2010 23:22:50 +0000 (19:22 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 9 Aug 2010 20:48:00 +0000 (16:48 -0400)
NB: treatment of inode hash is completely braindead there

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/smbfs/inode.c

index e338f0a5a70d78288e298247623a130911bb385b..450c9194198861483daa183fb6582e1c9790eadb 100644 (file)
@@ -46,7 +46,7 @@
 
 #define SMB_TTL_DEFAULT 1000
 
-static void smb_delete_inode(struct inode *);
+static void smb_evict_inode(struct inode *);
 static void smb_put_super(struct super_block *);
 static int  smb_statfs(struct dentry *, struct kstatfs *);
 static int  smb_show_options(struct seq_file *, struct vfsmount *);
@@ -102,7 +102,7 @@ static const struct super_operations smb_sops =
        .alloc_inode    = smb_alloc_inode,
        .destroy_inode  = smb_destroy_inode,
        .drop_inode     = generic_delete_inode,
-       .delete_inode   = smb_delete_inode,
+       .evict_inode    = smb_evict_inode,
        .put_super      = smb_put_super,
        .statfs         = smb_statfs,
        .show_options   = smb_show_options,
@@ -324,15 +324,15 @@ out:
  * All blocking cleanup operations need to go here to avoid races.
  */
 static void
-smb_delete_inode(struct inode *ino)
+smb_evict_inode(struct inode *ino)
 {
        DEBUG1("ino=%ld\n", ino->i_ino);
        truncate_inode_pages(&ino->i_data, 0);
+       end_writeback(ino);
        lock_kernel();
        if (smb_close(ino))
                PARANOIA("could not close inode %ld\n", ino->i_ino);
        unlock_kernel();
-       clear_inode(ino);
 }
 
 static struct option opts[] = {