cifs: implement drop_inode superblock op
authorJeff Layton <jlayton@redhat.com>
Tue, 1 Jun 2010 18:47:40 +0000 (14:47 -0400)
committerSteve French <sfrench@us.ibm.com>
Sat, 12 Jun 2010 02:06:52 +0000 (02:06 +0000)
commit12420ac341533f3715b3deb788637568f22b78ff
tree8462f0cf5276a97dd419c88760d08f5a17e5888a
parented0e3ace576d297a5c7015401db1060bbf677b94
cifs: implement drop_inode superblock op

The standard behavior for drop_inode is to delete the inode when the
last reference to it is put and the nlink count goes to 0. This helps
keep inodes that are still considered "not deleted" in cache as long as
possible even when there aren't dentries attached to them.

When server inode numbers are disabled, it's not possible for cifs_iget
to ever match an existing inode (since inode numbers are generated via
iunique). In this situation, cifs can keep a lot of inodes in cache that
will never be used again.

Implement a drop_inode routine that deletes the inode if server inode
numbers are disabled on the mount. This helps keep the cifs inode
caches down to a more manageable size when server inode numbers are
disabled.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/cifsfs.c