summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-2.6.38/217-mini_fo_2.6.36_fixes.patch
blob: 79024adbb7813287a9fe6cb8fd71228c5cb625af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
--- a/fs/mini_fo/super.c
+++ b/fs/mini_fo/super.c
@@ -76,7 +76,7 @@ mini_fo_read_inode(inode_t *inode)
  * to write some of our own stuff to disk.
  */
 STATIC void
-mini_fo_write_inode(inode_t *inode, int sync)
+mini_fo_write_inode(inode_t *inode, struct writeback_control *wbc)
 {
 	print_entry_location();
 	print_exit_location();
@@ -112,13 +112,14 @@ mini_fo_put_inode(inode_t *inode)
  * on our and the lower inode.
  */
 STATIC void
-mini_fo_delete_inode(inode_t *inode)
+mini_fo_evict_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);
+	fist_checkinode(inode, "mini_fo_evict_inode IN");
+	truncate_inode_pages(&inode->i_data, 0); /* FIXME: do we need this? */
+	invalidate_inode_buffers(inode);
+	end_writeback(inode);
 
 	print_exit_location();
 }
@@ -300,11 +301,10 @@ 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_evict_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,
 	umount_begin:	mini_fo_umount_begin,
 };