1 |
Author: dsd |
2 |
Date: 2008-04-18 19:27:32 +0000 (Fri, 18 Apr 2008) |
3 |
New Revision: 1294 |
4 |
|
5 |
Modified: |
6 |
genpatches-2.6/trunk/2.6.25/4300_squashfs-3.3.patch |
7 |
Log: |
8 |
fix for 2.6.25 |
9 |
|
10 |
Modified: genpatches-2.6/trunk/2.6.25/4300_squashfs-3.3.patch |
11 |
=================================================================== |
12 |
--- genpatches-2.6/trunk/2.6.25/4300_squashfs-3.3.patch 2008-04-18 11:17:59 UTC (rev 1293) |
13 |
+++ genpatches-2.6/trunk/2.6.25/4300_squashfs-3.3.patch 2008-04-18 19:27:32 UTC (rev 1294) |
14 |
@@ -1,7 +1,12 @@ |
15 |
-diff -x .gitignore -Nurp linux-2.6.24/fs/Kconfig linux-2.6.24-squashfs3.3/fs/Kconfig |
16 |
---- linux-2.6.24/fs/Kconfig 2007-10-25 17:41:45.000000000 +0100 |
17 |
-+++ linux-2.6.24-squashfs3.3/fs/Kconfig 2007-11-01 05:06:25.000000000 +0000 |
18 |
-@@ -1396,6 +1396,56 @@ config CRAMFS |
19 |
+ |
20 |
+iget changes for 2.6.25 by Daniel Drake <dsd@g.o> |
21 |
+https://bugs.gentoo.org/show_bug.cgi?id=218169 |
22 |
+ |
23 |
+Index: linux-2.6.25-gentoo/fs/Kconfig |
24 |
+=================================================================== |
25 |
+--- linux-2.6.25-gentoo.orig/fs/Kconfig |
26 |
++++ linux-2.6.25-gentoo/fs/Kconfig |
27 |
+@@ -1367,6 +1367,56 @@ config CRAMFS |
28 |
|
29 |
If unsure, say N. |
30 |
|
31 |
@@ -58,10 +63,11 @@ |
32 |
config VXFS_FS |
33 |
tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" |
34 |
depends on BLOCK |
35 |
-diff -x .gitignore -Nurp linux-2.6.24/fs/Makefile linux-2.6.24-squashfs3.3/fs/Makefile |
36 |
---- linux-2.6.24/fs/Makefile 2007-10-25 17:41:45.000000000 +0100 |
37 |
-+++ linux-2.6.24-squashfs3.3/fs/Makefile 2007-11-01 05:08:09.000000000 +0000 |
38 |
-@@ -72,6 +72,7 @@ obj-$(CONFIG_JBD) += jbd/ |
39 |
+Index: linux-2.6.25-gentoo/fs/Makefile |
40 |
+=================================================================== |
41 |
+--- linux-2.6.25-gentoo.orig/fs/Makefile |
42 |
++++ linux-2.6.25-gentoo/fs/Makefile |
43 |
+@@ -73,6 +73,7 @@ obj-$(CONFIG_JBD) += jbd/ |
44 |
obj-$(CONFIG_JBD2) += jbd2/ |
45 |
obj-$(CONFIG_EXT2_FS) += ext2/ |
46 |
obj-$(CONFIG_CRAMFS) += cramfs/ |
47 |
@@ -69,10 +75,11 @@ |
48 |
obj-y += ramfs/ |
49 |
obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ |
50 |
obj-$(CONFIG_CODA_FS) += coda/ |
51 |
-diff -x .gitignore -Nurp linux-2.6.24/fs/squashfs/inode.c linux-2.6.24-squashfs3.3/fs/squashfs/inode.c |
52 |
---- linux-2.6.24/fs/squashfs/inode.c 1970-01-01 01:00:00.000000000 +0100 |
53 |
-+++ linux-2.6.24-squashfs3.3/fs/squashfs/inode.c 2007-11-01 05:05:00.000000000 +0000 |
54 |
-@@ -0,0 +1,2192 @@ |
55 |
+Index: linux-2.6.25-gentoo/fs/squashfs/inode.c |
56 |
+=================================================================== |
57 |
+--- /dev/null |
58 |
++++ linux-2.6.25-gentoo/fs/squashfs/inode.c |
59 |
+@@ -0,0 +1,2186 @@ |
60 |
+/* |
61 |
+ * Squashfs - a compressed read only filesystem for Linux |
62 |
+ * |
63 |
@@ -107,12 +114,12 @@ |
64 |
+#include <linux/vmalloc.h> |
65 |
+#include <linux/smp_lock.h> |
66 |
+#include <linux/exportfs.h> |
67 |
++#include <linux/sched.h> |
68 |
+ |
69 |
+#include "squashfs.h" |
70 |
+ |
71 |
+int squashfs_cached_blks; |
72 |
+ |
73 |
-+static void vfs_read_inode(struct inode *i); |
74 |
+static struct dentry *squashfs_get_parent(struct dentry *child); |
75 |
+static int squashfs_read_inode(struct inode *i, squashfs_inode_t inode); |
76 |
+static int squashfs_statfs(struct dentry *, struct kstatfs *); |
77 |
@@ -158,7 +165,6 @@ |
78 |
+ .destroy_inode = squashfs_destroy_inode, |
79 |
+ .statfs = squashfs_statfs, |
80 |
+ .put_super = squashfs_put_super, |
81 |
-+ .read_inode = vfs_read_inode |
82 |
+}; |
83 |
+ |
84 |
+static struct export_operations squashfs_export_ops = { |
85 |
@@ -706,28 +712,21 @@ |
86 |
+ return SQUASHFS_INVALID_BLK; |
87 |
+} |
88 |
+ |
89 |
-+ |
90 |
-+static void vfs_read_inode(struct inode *i) |
91 |
-+{ |
92 |
-+ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; |
93 |
-+ squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, i->i_ino); |
94 |
-+ |
95 |
-+ TRACE("Entered vfs_read_inode\n"); |
96 |
-+ |
97 |
-+ if(inode != SQUASHFS_INVALID_BLK) |
98 |
-+ (msblk->read_inode)(i, inode); |
99 |
-+} |
100 |
-+ |
101 |
-+ |
102 |
+static struct dentry *squashfs_get_parent(struct dentry *child) |
103 |
+{ |
104 |
+ struct inode *i = child->d_inode; |
105 |
-+ struct inode *parent = iget(i->i_sb, SQUASHFS_I(i)->u.s2.parent_inode); |
106 |
++ unsigned long ino = SQUASHFS_I(i)->u.s2.parent_inode; |
107 |
++ squashfs_inode_t inode = squashfs_inode_lookup(i->i_sb, ino); |
108 |
++ struct inode *parent; |
109 |
+ struct dentry *rv; |
110 |
+ |
111 |
+ TRACE("Entered squashfs_get_parent\n"); |
112 |
+ |
113 |
-+ if(parent == NULL) { |
114 |
++ if (inode == SQUASHFS_INVALID_BLK) |
115 |
++ return ERR_PTR(-EINVAL); |
116 |
++ |
117 |
++ parent = squashfs_iget(i->i_sb, inode, ino); |
118 |
++ if (IS_ERR(parent)) { |
119 |
+ rv = ERR_PTR(-EACCES); |
120 |
+ goto out; |
121 |
+ } |
122 |
@@ -740,7 +739,7 @@ |
123 |
+ return rv; |
124 |
+} |
125 |
+ |
126 |
-+ |
127 |
++ |
128 |
+SQSH_EXTERN struct inode *squashfs_iget(struct super_block *s, |
129 |
+ squashfs_inode_t inode, unsigned int inode_number) |
130 |
+{ |
131 |
@@ -748,8 +747,10 @@ |
132 |
+ struct inode *i = iget_locked(s, inode_number); |
133 |
+ |
134 |
+ TRACE("Entered squashfs_iget\n"); |
135 |
++ if (!i) |
136 |
++ return ERR_PTR(-ENOMEM); |
137 |
+ |
138 |
-+ if(i && (i->i_state & I_NEW)) { |
139 |
++ if (i->i_state & I_NEW) { |
140 |
+ (msblk->read_inode)(i, inode); |
141 |
+ unlock_new_inode(i); |
142 |
+ } |
143 |
@@ -2265,9 +2266,10 @@ |
144 |
+MODULE_DESCRIPTION("squashfs 3.2-r2-CVS, a compressed read-only filesystem"); |
145 |
+MODULE_AUTHOR("Phillip Lougher <phillip@××××××××××××××××.uk>"); |
146 |
+MODULE_LICENSE("GPL"); |
147 |
-diff -x .gitignore -Nurp linux-2.6.24/fs/squashfs/Makefile linux-2.6.24-squashfs3.3/fs/squashfs/Makefile |
148 |
---- linux-2.6.24/fs/squashfs/Makefile 1970-01-01 01:00:00.000000000 +0100 |
149 |
-+++ linux-2.6.24-squashfs3.3/fs/squashfs/Makefile 2005-11-20 14:31:00.000000000 +0000 |
150 |
+Index: linux-2.6.25-gentoo/fs/squashfs/Makefile |
151 |
+=================================================================== |
152 |
+--- /dev/null |
153 |
++++ linux-2.6.25-gentoo/fs/squashfs/Makefile |
154 |
@@ -0,0 +1,7 @@ |
155 |
+# |
156 |
+# Makefile for the linux squashfs routines. |
157 |
@@ -2276,9 +2278,10 @@ |
158 |
+obj-$(CONFIG_SQUASHFS) += squashfs.o |
159 |
+squashfs-y += inode.o |
160 |
+squashfs-y += squashfs2_0.o |
161 |
-diff -x .gitignore -Nurp linux-2.6.24/fs/squashfs/squashfs2_0.c linux-2.6.24-squashfs3.3/fs/squashfs/squashfs2_0.c |
162 |
---- linux-2.6.24/fs/squashfs/squashfs2_0.c 1970-01-01 01:00:00.000000000 +0100 |
163 |
-+++ linux-2.6.24-squashfs3.3/fs/squashfs/squashfs2_0.c 2007-10-25 00:43:59.000000000 +0100 |
164 |
+Index: linux-2.6.25-gentoo/fs/squashfs/squashfs2_0.c |
165 |
+=================================================================== |
166 |
+--- /dev/null |
167 |
++++ linux-2.6.25-gentoo/fs/squashfs/squashfs2_0.c |
168 |
@@ -0,0 +1,740 @@ |
169 |
+/* |
170 |
+ * Squashfs - a compressed read only filesystem for Linux |
171 |
@@ -3020,9 +3023,10 @@ |
172 |
+ |
173 |
+ return 1; |
174 |
+} |
175 |
-diff -x .gitignore -Nurp linux-2.6.24/fs/squashfs/squashfs.h linux-2.6.24-squashfs3.3/fs/squashfs/squashfs.h |
176 |
---- linux-2.6.24/fs/squashfs/squashfs.h 1970-01-01 01:00:00.000000000 +0100 |
177 |
-+++ linux-2.6.24-squashfs3.3/fs/squashfs/squashfs.h 2007-08-19 04:23:16.000000000 +0100 |
178 |
+Index: linux-2.6.25-gentoo/fs/squashfs/squashfs.h |
179 |
+=================================================================== |
180 |
+--- /dev/null |
181 |
++++ linux-2.6.25-gentoo/fs/squashfs/squashfs.h |
182 |
@@ -0,0 +1,86 @@ |
183 |
+/* |
184 |
+ * Squashfs - a compressed read only filesystem for Linux |
185 |
@@ -3110,9 +3114,10 @@ |
186 |
+ return 0; |
187 |
+} |
188 |
+#endif |
189 |
-diff -x .gitignore -Nurp linux-2.6.24/include/linux/squashfs_fs.h linux-2.6.24-squashfs3.3/include/linux/squashfs_fs.h |
190 |
---- linux-2.6.24/include/linux/squashfs_fs.h 1970-01-01 01:00:00.000000000 +0100 |
191 |
-+++ linux-2.6.24-squashfs3.3/include/linux/squashfs_fs.h 2007-11-01 03:50:57.000000000 +0000 |
192 |
+Index: linux-2.6.25-gentoo/include/linux/squashfs_fs.h |
193 |
+=================================================================== |
194 |
+--- /dev/null |
195 |
++++ linux-2.6.25-gentoo/include/linux/squashfs_fs.h |
196 |
@@ -0,0 +1,935 @@ |
197 |
+#ifndef SQUASHFS_FS |
198 |
+#define SQUASHFS_FS |
199 |
@@ -4049,9 +4054,10 @@ |
200 |
+ |
201 |
+#endif |
202 |
+#endif |
203 |
-diff -x .gitignore -Nurp linux-2.6.24/include/linux/squashfs_fs_i.h linux-2.6.24-squashfs3.3/include/linux/squashfs_fs_i.h |
204 |
---- linux-2.6.24/include/linux/squashfs_fs_i.h 1970-01-01 01:00:00.000000000 +0100 |
205 |
-+++ linux-2.6.24-squashfs3.3/include/linux/squashfs_fs_i.h 2007-08-19 04:24:08.000000000 +0100 |
206 |
+Index: linux-2.6.25-gentoo/include/linux/squashfs_fs_i.h |
207 |
+=================================================================== |
208 |
+--- /dev/null |
209 |
++++ linux-2.6.25-gentoo/include/linux/squashfs_fs_i.h |
210 |
@@ -0,0 +1,45 @@ |
211 |
+#ifndef SQUASHFS_FS_I |
212 |
+#define SQUASHFS_FS_I |
213 |
@@ -4098,9 +4104,10 @@ |
214 |
+ struct inode vfs_inode; |
215 |
+}; |
216 |
+#endif |
217 |
-diff -x .gitignore -Nurp linux-2.6.24/include/linux/squashfs_fs_sb.h linux-2.6.24-squashfs3.3/include/linux/squashfs_fs_sb.h |
218 |
---- linux-2.6.24/include/linux/squashfs_fs_sb.h 1970-01-01 01:00:00.000000000 +0100 |
219 |
-+++ linux-2.6.24-squashfs3.3/include/linux/squashfs_fs_sb.h 2007-08-19 04:24:26.000000000 +0100 |
220 |
+Index: linux-2.6.25-gentoo/include/linux/squashfs_fs_sb.h |
221 |
+=================================================================== |
222 |
+--- /dev/null |
223 |
++++ linux-2.6.25-gentoo/include/linux/squashfs_fs_sb.h |
224 |
@@ -0,0 +1,76 @@ |
225 |
+#ifndef SQUASHFS_FS_SB |
226 |
+#define SQUASHFS_FS_SB |
227 |
@@ -4178,9 +4185,10 @@ |
228 |
+ int (*read_fragment_index_table)(struct super_block *s); |
229 |
+}; |
230 |
+#endif |
231 |
-diff -x .gitignore -Nurp linux-2.6.24/init/do_mounts_rd.c linux-2.6.24-squashfs3.3/init/do_mounts_rd.c |
232 |
---- linux-2.6.24/init/do_mounts_rd.c 2007-10-25 17:41:49.000000000 +0100 |
233 |
-+++ linux-2.6.24-squashfs3.3/init/do_mounts_rd.c 2007-11-01 05:06:25.000000000 +0000 |
234 |
+Index: linux-2.6.25-gentoo/init/do_mounts_rd.c |
235 |
+=================================================================== |
236 |
+--- linux-2.6.25-gentoo.orig/init/do_mounts_rd.c |
237 |
++++ linux-2.6.25-gentoo/init/do_mounts_rd.c |
238 |
@@ -5,6 +5,7 @@ |
239 |
#include <linux/ext2_fs.h> |
240 |
#include <linux/romfs_fs.h> |
241 |
|
242 |
-- |
243 |
gentoo-commits@l.g.o mailing list |