aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-01 17:26:35 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-06-09 09:34:14 -0400
commitda6d503aa0a75ec44f17d985a2b500077e7f6a74 (patch)
tree863dbb7c8a2bdda8b2ef3e462722c867ce6e6c46
parentd2ccddf042c403b146159beea438c6bfc4a445e2 (diff)
NFS: Remove nfs_delete_inode()
Now that we have a real nfs_invalidate_page() to ensure that truncate_inode_pages() does the right thing when there are pending dirty pages, we can get rid of nfs_delete_inode(). Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/inode.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 3200358195be..9ff039f9a836 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -62,7 +62,6 @@ static int nfs_update_inode(struct inode *, struct nfs_fattr *);
62static struct inode *nfs_alloc_inode(struct super_block *sb); 62static struct inode *nfs_alloc_inode(struct super_block *sb);
63static void nfs_destroy_inode(struct inode *); 63static void nfs_destroy_inode(struct inode *);
64static int nfs_write_inode(struct inode *,int); 64static int nfs_write_inode(struct inode *,int);
65static void nfs_delete_inode(struct inode *);
66static void nfs_clear_inode(struct inode *); 65static void nfs_clear_inode(struct inode *);
67static void nfs_umount_begin(struct super_block *); 66static void nfs_umount_begin(struct super_block *);
68static int nfs_statfs(struct super_block *, struct kstatfs *); 67static int nfs_statfs(struct super_block *, struct kstatfs *);
@@ -76,7 +75,6 @@ static struct super_operations nfs_sops = {
76 .alloc_inode = nfs_alloc_inode, 75 .alloc_inode = nfs_alloc_inode,
77 .destroy_inode = nfs_destroy_inode, 76 .destroy_inode = nfs_destroy_inode,
78 .write_inode = nfs_write_inode, 77 .write_inode = nfs_write_inode,
79 .delete_inode = nfs_delete_inode,
80 .statfs = nfs_statfs, 78 .statfs = nfs_statfs,
81 .clear_inode = nfs_clear_inode, 79 .clear_inode = nfs_clear_inode,
82 .umount_begin = nfs_umount_begin, 80 .umount_begin = nfs_umount_begin,
@@ -147,30 +145,15 @@ nfs_write_inode(struct inode *inode, int sync)
147} 145}
148 146
149static void 147static void
150nfs_delete_inode(struct inode * inode)
151{
152 dprintk("NFS: delete_inode(%s/%ld)\n", inode->i_sb->s_id, inode->i_ino);
153
154 truncate_inode_pages(&inode->i_data, 0);
155
156 nfs_wb_all(inode);
157 /*
158 * The following should never happen...
159 */
160 if (nfs_have_writebacks(inode)) {
161 printk(KERN_ERR "nfs_delete_inode: inode %ld has pending RPC requests\n", inode->i_ino);
162 }
163
164 clear_inode(inode);
165}
166
167static void
168nfs_clear_inode(struct inode *inode) 148nfs_clear_inode(struct inode *inode)
169{ 149{
170 struct nfs_inode *nfsi = NFS_I(inode); 150 struct nfs_inode *nfsi = NFS_I(inode);
171 struct rpc_cred *cred; 151 struct rpc_cred *cred;
172 152
173 nfs_wb_all(inode); 153 /*
154 * The following should never happen...
155 */
156 BUG_ON(nfs_have_writebacks(inode));
174 BUG_ON (!list_empty(&nfsi->open_files)); 157 BUG_ON (!list_empty(&nfsi->open_files));
175 nfs_zap_acl_cache(inode); 158 nfs_zap_acl_cache(inode);
176 cred = nfsi->cache_access.cred; 159 cred = nfsi->cache_access.cred;
@@ -1821,7 +1804,6 @@ static struct super_operations nfs4_sops = {
1821 .alloc_inode = nfs_alloc_inode, 1804 .alloc_inode = nfs_alloc_inode,
1822 .destroy_inode = nfs_destroy_inode, 1805 .destroy_inode = nfs_destroy_inode,
1823 .write_inode = nfs_write_inode, 1806 .write_inode = nfs_write_inode,
1824 .delete_inode = nfs_delete_inode,
1825 .statfs = nfs_statfs, 1807 .statfs = nfs_statfs,
1826 .clear_inode = nfs4_clear_inode, 1808 .clear_inode = nfs4_clear_inode,
1827 .umount_begin = nfs_umount_begin, 1809 .umount_begin = nfs_umount_begin,