--- a/fs/mini_fo/super.c +++ b/fs/mini_fo/super.c @@ -117,8 +117,11 @@ mini_fo_delete_inode(inode_t *inode) print_entry_location(); fist_checkinode(inode, "mini_fo_delete_inode IN"); - inode->i_size = 0; /* every f/s seems to do that */ - clear_inode(inode); + // inode->i_size = 0; /* every f/s seems to do that */ + end_writeback(inode); + dquot_drop(inode); + inode->i_blocks = 0; + print_exit_location(); } @@ -300,11 +303,11 @@ struct super_operations mini_fo_sops = put_inode: mini_fo_put_inode, #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) */ #if defined(FIST_DEBUG) || defined(FIST_FILTER_SCA) - delete_inode: mini_fo_delete_inode, + evict_inode: mini_fo_delete_inode, #endif /* defined(FIST_DEBUG) || defined(FIST_FILTER_SCA) */ put_super: mini_fo_put_super, statfs: mini_fo_statfs, remount_fs: mini_fo_remount_fs, - clear_inode: mini_fo_clear_inode, + evict_inode: mini_fo_clear_inode, umount_begin: mini_fo_umount_begin, };