]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/jfs/inode.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / fs / jfs / inode.c
index 24a689179af27e2e8e619022ca6905546aa43bbb..cff352f4ec18d357d856d7a8758611ad2a7774ab 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/pagemap.h>
 #include <linux/quotaops.h>
 #include "jfs_incore.h"
+#include "jfs_inode.h"
 #include "jfs_filsys.h"
 #include "jfs_imap.h"
 #include "jfs_extent.h"
 #include "jfs_debug.h"
 
 
-extern struct inode_operations jfs_dir_inode_operations;
-extern struct inode_operations jfs_file_inode_operations;
-extern struct inode_operations jfs_symlink_inode_operations;
-extern struct file_operations jfs_dir_operations;
-extern struct file_operations jfs_file_operations;
-struct address_space_operations jfs_aops;
-extern int freeZeroLink(struct inode *);
-
 void jfs_read_inode(struct inode *inode)
 {
        if (diRead(inode)) { 
@@ -135,8 +128,14 @@ void jfs_delete_inode(struct inode *inode)
 {
        jfs_info("In jfs_delete_inode, inode = 0x%p", inode);
 
+       if (is_bad_inode(inode) ||
+           (JFS_IP(inode)->fileset != cpu_to_le32(FILESYSTEM_I)))
+                       return;
+
+       truncate_inode_pages(&inode->i_data, 0);
+
        if (test_cflag(COMMIT_Freewmap, inode))
-               freeZeroLink(inode);
+               jfs_free_zero_link(inode);
 
        diFree(inode);