summaryrefslogtreecommitdiff
blob: 32c27018e4bab50a999ae4ed833981026f91474d (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
Index: linux-2.6.18/fs/ext2/inode.c
===================================================================
--- linux-2.6.18.orig/fs/ext2/inode.c
+++ linux-2.6.18/fs/ext2/inode.c
@@ -914,7 +914,7 @@ void ext2_truncate (struct inode * inode
 		return;
 	if (ext2_inode_is_fast_symlink(inode))
 		return;
-	if (IS_APPEND(inode) || IS_IMMUTABLE(inode))
+	if (IS_APPEND(inode) || IS_IXORUNLINK(inode))
 		return;
 
 	ext2_discard_prealloc(inode);
Index: linux-2.6.18/fs/ext3/inode.c
===================================================================
--- linux-2.6.18.orig/fs/ext3/inode.c
+++ linux-2.6.18/fs/ext3/inode.c
@@ -2246,7 +2246,7 @@ void ext3_truncate(struct inode *inode)
 		return;
 	if (ext3_inode_is_fast_symlink(inode))
 		return;
-	if (IS_APPEND(inode) || IS_IMMUTABLE(inode))
+	if (IS_APPEND(inode) || IS_IXORUNLINK(inode))
 		return;
 
 	/*
Index: linux-2.6.18/include/linux/vs_cowbl.h
===================================================================
--- linux-2.6.18.orig/include/linux/vs_cowbl.h
+++ linux-2.6.18/include/linux/vs_cowbl.h
@@ -32,6 +32,7 @@ static inline int cow_check_and_break(st
 				error = PTR_ERR(new_dentry);
 		} else {
 			inode->i_flags &= ~(S_IUNLINK|S_IMMUTABLE);
+			inode->i_ctime = CURRENT_TIME;
 			mark_inode_dirty(inode);
 		}
 	}