aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-06-07 13:43:19 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2010-08-09 16:48:35 -0400
commit45321ac54316eaeeebde0b5f728a1791e500974c (patch)
treec3989dd1a8b4a50168d696aa608941de88da9ade /fs/cifs/cifsfs.c
parent30140837f256558c943636245ab90897a9455a70 (diff)
Make ->drop_inode() just return whether inode needs to be dropped
... and let iput_final() do the actual eviction or retention Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 8a2cf129e535..20914f5627dd 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -480,14 +480,13 @@ static int cifs_remount(struct super_block *sb, int *flags, char *data)
480 return 0; 480 return 0;
481} 481}
482 482
483void cifs_drop_inode(struct inode *inode) 483static int cifs_drop_inode(struct inode *inode)
484{ 484{
485 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb); 485 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
486 486
487 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM) 487 /* no serverino => unconditional eviction */
488 return generic_drop_inode(inode); 488 return !(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM) ||
489 489 generic_drop_inode(inode);
490 return generic_delete_inode(inode);
491} 490}
492 491
493static const struct super_operations cifs_super_ops = { 492static const struct super_operations cifs_super_ops = {