diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2010-06-07 13:43:19 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-08-09 16:48:35 -0400 |
commit | 45321ac54316eaeeebde0b5f728a1791e500974c (patch) | |
tree | c3989dd1a8b4a50168d696aa608941de88da9ade /fs/cifs/cifsfs.c | |
parent | 30140837f256558c943636245ab90897a9455a70 (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.c | 9 |
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 | ||
483 | void cifs_drop_inode(struct inode *inode) | 483 | static 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 | ||
493 | static const struct super_operations cifs_super_ops = { | 492 | static const struct super_operations cifs_super_ops = { |