Mercurial > hg > aboriginal
annotate sources/patches/linux-2.6.19-squashfs-1.patch @ 73:2fa6b59e0210
Added tag 0.1.0 for changeset 478178b9337b
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 29 Dec 2006 20:00:10 -0500 |
parents | 4dfa721aa532 |
children |
rev | line source |
---|---|
58
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1 diff -Nru linux-2.6.19.ori2/fs/Kconfig linux-2.6.19.ori/fs/Kconfig |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2 --- linux-2.6.19.ori2/fs/Kconfig 2006-11-29 22:57:37.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3 +++ linux-2.6.19.ori/fs/Kconfig 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4 @@ -1407,6 +1407,71 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
5 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
6 If unsure, say N. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
7 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
8 +config SQUASHFS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
9 + tristate "SquashFS 3.1 - Squashed file system support" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
10 + select ZLIB_INFLATE |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
11 + help |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
12 + Saying Y here includes support for SquashFS 3.1 (a Compressed Read-Only File |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
13 + System). Squashfs is a highly compressed read-only filesystem for Linux. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
14 + It uses zlib compression to compress both files, inodes and directories. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
15 + Inodes in the system are very small and all blocks are packed to minimise |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
16 + data overhead. Block sizes greater than 4K are supported up to a maximum of 64K. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
17 + SquashFS 3.1 supports 64 bit filesystems and files (larger than 4GB), full |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
18 + uid/gid information, hard links and timestamps. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
19 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
20 + Squashfs is intended for general read-only filesystem use, for archival |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
21 + use (i.e. in cases where a .tar.gz file may be used), and in embedded |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
22 + systems where low overhead is needed. Further information and filesystem tools |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
23 + are available from http://squashfs.sourceforge.net. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
24 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
25 + If you want to compile this as a module ( = code which can be |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
26 + inserted in and removed from the running kernel whenever you want), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
27 + say M here and read <file:Documentation/modules.txt>. The module |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
28 + will be called squashfs. Note that the root file system (the one |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
29 + containing the directory /) cannot be compiled as a module. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
30 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
31 + If unsure, say N. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
32 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
33 +config SQUASHFS_EMBEDDED |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
34 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
35 + bool "Additional options for memory-constrained systems" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
36 + depends on SQUASHFS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
37 + default n |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
38 + help |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
39 + Saying Y here allows you to specify cache sizes and how Squashfs |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
40 + allocates memory. This is only intended for memory constrained |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
41 + systems. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
42 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
43 + If unsure, say N. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
44 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
45 +config SQUASHFS_FRAGMENT_CACHE_SIZE |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
46 + int "Number of fragments cached" if SQUASHFS_EMBEDDED |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
47 + depends on SQUASHFS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
48 + default "3" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
49 + help |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
50 + By default SquashFS caches the last 3 fragments read from |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
51 + the filesystem. Increasing this amount may mean SquashFS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
52 + has to re-read fragments less often from disk, at the expense |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
53 + of extra system memory. Decreasing this amount will mean |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
54 + SquashFS uses less memory at the expense of extra reads from disk. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
55 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
56 + Note there must be at least one cached fragment. Anything |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
57 + much more than three will probably not make much difference. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
58 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
59 +config SQUASHFS_VMALLOC |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
60 + bool "Use Vmalloc rather than Kmalloc" if SQUASHFS_EMBEDDED |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
61 + depends on SQUASHFS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
62 + default n |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
63 + help |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
64 + By default SquashFS uses kmalloc to obtain fragment cache memory. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
65 + Kmalloc memory is the standard kernel allocator, but it can fail |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
66 + on memory constrained systems. Because of the way Vmalloc works, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
67 + Vmalloc can succeed when kmalloc fails. Specifying this option |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
68 + will make SquashFS always use Vmalloc to allocate the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
69 + fragment cache memory. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
70 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
71 + If unsure, say N. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
72 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
73 config VXFS_FS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
74 tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
75 depends on BLOCK |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
76 diff -Nru linux-2.6.19.ori2/fs/Makefile linux-2.6.19.ori/fs/Makefile |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
77 --- linux-2.6.19.ori2/fs/Makefile 2006-11-29 22:57:37.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
78 +++ linux-2.6.19.ori/fs/Makefile 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
79 @@ -67,6 +67,7 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
80 obj-$(CONFIG_JBD2) += jbd2/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
81 obj-$(CONFIG_EXT2_FS) += ext2/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
82 obj-$(CONFIG_CRAMFS) += cramfs/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
83 +obj-$(CONFIG_SQUASHFS) += squashfs/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
84 obj-$(CONFIG_RAMFS) += ramfs/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
85 obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
86 obj-$(CONFIG_CODA_FS) += coda/ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
87 diff -Nru linux-2.6.19.ori2/fs/squashfs/Makefile linux-2.6.19.ori/fs/squashfs/Makefile |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
88 --- linux-2.6.19.ori2/fs/squashfs/Makefile 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
89 +++ linux-2.6.19.ori/fs/squashfs/Makefile 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
90 @@ -0,0 +1,7 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
91 +# |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
92 +# Makefile for the linux squashfs routines. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
93 +# |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
94 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
95 +obj-$(CONFIG_SQUASHFS) += squashfs.o |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
96 +squashfs-y += inode.o |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
97 +squashfs-y += squashfs2_0.o |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
98 diff -Nru linux-2.6.19.ori2/fs/squashfs/inode.c linux-2.6.19.ori/fs/squashfs/inode.c |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
99 --- linux-2.6.19.ori2/fs/squashfs/inode.c 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
100 +++ linux-2.6.19.ori/fs/squashfs/inode.c 2006-12-03 00:13:45.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
101 @@ -0,0 +1,2152 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
102 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
103 + * Squashfs - a compressed read only filesystem for Linux |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
104 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
105 + * Copyright (c) 2002, 2003, 2004, 2005, 2006 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
106 + * Phillip Lougher <phillip@lougher.org.uk> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
107 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
108 + * This program is free software; you can redistribute it and/or |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
109 + * modify it under the terms of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
110 + * as published by the Free Software Foundation; either version 2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
111 + * or (at your option) any later version. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
112 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
113 + * This program is distributed in the hope that it will be useful, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
114 + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
115 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
116 + * GNU General Public License for more details. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
117 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
118 + * You should have received a copy of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
119 + * along with this program; if not, write to the Free Software |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
120 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
121 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
122 + * inode.c |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
123 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
124 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
125 +#include <linux/types.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
126 +#include <linux/squashfs_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
127 +#include <linux/module.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
128 +#include <linux/errno.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
129 +#include <linux/slab.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
130 +#include <linux/zlib.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
131 +#include <linux/fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
132 +#include <linux/smp_lock.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
133 +#include <linux/slab.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
134 +#include <linux/squashfs_fs_sb.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
135 +#include <linux/squashfs_fs_i.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
136 +#include <linux/buffer_head.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
137 +#include <linux/vfs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
138 +#include <linux/init.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
139 +#include <linux/dcache.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
140 +#include <linux/wait.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
141 +#include <linux/blkdev.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
142 +#include <linux/vmalloc.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
143 +#include <asm/uaccess.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
144 +#include <asm/semaphore.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
145 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
146 +#include "squashfs.h" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
147 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
148 +static void squashfs_put_super(struct super_block *); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
149 +static int squashfs_statfs(struct dentry *, struct kstatfs *); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
150 +static int squashfs_symlink_readpage(struct file *file, struct page *page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
151 +static int squashfs_readpage(struct file *file, struct page *page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
152 +static int squashfs_readpage4K(struct file *file, struct page *page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
153 +static int squashfs_readdir(struct file *, void *, filldir_t); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
154 +static struct inode *squashfs_alloc_inode(struct super_block *sb); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
155 +static void squashfs_destroy_inode(struct inode *inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
156 +static int init_inodecache(void); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
157 +static void destroy_inodecache(void); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
158 +static struct dentry *squashfs_lookup(struct inode *, struct dentry *, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
159 + struct nameidata *); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
160 +static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
161 +static long long read_blocklist(struct inode *inode, int index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
162 + int readahead_blks, char *block_list, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
163 + unsigned short **block_p, unsigned int *bsize); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
164 +static int squashfs_get_sb(struct file_system_type *, int, const char *, void *, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
165 + struct vfsmount *); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
166 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
167 +static struct file_system_type squashfs_fs_type = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
168 + .owner = THIS_MODULE, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
169 + .name = "squashfs", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
170 + .get_sb = squashfs_get_sb, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
171 + .kill_sb = kill_block_super, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
172 + .fs_flags = FS_REQUIRES_DEV |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
173 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
174 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
175 +static unsigned char squashfs_filetype_table[] = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
176 + DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
177 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
178 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
179 +static struct super_operations squashfs_ops = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
180 + .alloc_inode = squashfs_alloc_inode, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
181 + .destroy_inode = squashfs_destroy_inode, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
182 + .statfs = squashfs_statfs, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
183 + .put_super = squashfs_put_super, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
184 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
185 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
186 +SQSH_EXTERN struct address_space_operations squashfs_symlink_aops = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
187 + .readpage = squashfs_symlink_readpage |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
188 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
189 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
190 +SQSH_EXTERN struct address_space_operations squashfs_aops = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
191 + .readpage = squashfs_readpage |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
192 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
193 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
194 +SQSH_EXTERN struct address_space_operations squashfs_aops_4K = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
195 + .readpage = squashfs_readpage4K |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
196 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
197 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
198 +static struct file_operations squashfs_dir_ops = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
199 + .read = generic_read_dir, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
200 + .readdir = squashfs_readdir |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
201 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
202 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
203 +SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
204 + .lookup = squashfs_lookup |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
205 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
206 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
207 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
208 +static struct buffer_head *get_block_length(struct super_block *s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
209 + int *cur_index, int *offset, int *c_byte) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
210 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
211 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
212 + unsigned short temp; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
213 + struct buffer_head *bh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
214 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
215 + if (!(bh = sb_bread(s, *cur_index))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
216 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
217 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
218 + if (msblk->devblksize - *offset == 1) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
219 + if (msblk->swap) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
220 + ((unsigned char *) &temp)[1] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
221 + (bh->b_data + *offset)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
222 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
223 + ((unsigned char *) &temp)[0] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
224 + (bh->b_data + *offset)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
225 + brelse(bh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
226 + if (!(bh = sb_bread(s, ++(*cur_index)))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
227 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
228 + if (msblk->swap) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
229 + ((unsigned char *) &temp)[0] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
230 + bh->b_data); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
231 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
232 + ((unsigned char *) &temp)[1] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
233 + bh->b_data); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
234 + *c_byte = temp; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
235 + *offset = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
236 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
237 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
238 + ((unsigned char *) &temp)[1] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
239 + (bh->b_data + *offset)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
240 + ((unsigned char *) &temp)[0] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
241 + (bh->b_data + *offset + 1)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
242 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
243 + ((unsigned char *) &temp)[0] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
244 + (bh->b_data + *offset)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
245 + ((unsigned char *) &temp)[1] = *((unsigned char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
246 + (bh->b_data + *offset + 1)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
247 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
248 + *c_byte = temp; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
249 + *offset += 2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
250 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
251 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
252 + if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
253 + if (*offset == msblk->devblksize) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
254 + brelse(bh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
255 + if (!(bh = sb_bread(s, ++(*cur_index)))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
256 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
257 + *offset = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
258 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
259 + if (*((unsigned char *) (bh->b_data + *offset)) != |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
260 + SQUASHFS_MARKER_BYTE) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
261 + ERROR("Metadata block marker corrupt @ %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
262 + *cur_index); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
263 + brelse(bh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
264 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
265 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
266 + (*offset)++; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
267 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
268 + return bh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
269 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
270 +out: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
271 + return NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
272 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
273 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
274 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
275 +SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
276 + long long index, unsigned int length, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
277 + long long *next_index) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
278 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
279 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
280 + struct buffer_head *bh[((SQUASHFS_FILE_MAX_SIZE - 1) >> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
281 + msblk->devblksize_log2) + 2]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
282 + unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
283 + unsigned int cur_index = index >> msblk->devblksize_log2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
284 + int bytes, avail_bytes, b = 0, k; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
285 + char *c_buffer; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
286 + unsigned int compressed; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
287 + unsigned int c_byte = length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
288 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
289 + if (c_byte) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
290 + bytes = msblk->devblksize - offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
291 + compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
292 + c_buffer = compressed ? msblk->read_data : buffer; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
293 + c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
294 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
295 + TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
296 + ? "" : "un", (unsigned int) c_byte); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
297 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
298 + if (!(bh[0] = sb_getblk(s, cur_index))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
299 + goto block_release; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
300 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
301 + for (b = 1; bytes < c_byte; b++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
302 + if (!(bh[b] = sb_getblk(s, ++cur_index))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
303 + goto block_release; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
304 + bytes += msblk->devblksize; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
305 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
306 + ll_rw_block(READ, b, bh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
307 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
308 + if (!(bh[0] = get_block_length(s, &cur_index, &offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
309 + &c_byte))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
310 + goto read_failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
311 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
312 + bytes = msblk->devblksize - offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
313 + compressed = SQUASHFS_COMPRESSED(c_byte); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
314 + c_buffer = compressed ? msblk->read_data : buffer; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
315 + c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
316 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
317 + TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
318 + ? "" : "un", (unsigned int) c_byte); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
319 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
320 + for (b = 1; bytes < c_byte; b++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
321 + if (!(bh[b] = sb_getblk(s, ++cur_index))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
322 + goto block_release; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
323 + bytes += msblk->devblksize; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
324 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
325 + ll_rw_block(READ, b - 1, bh + 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
326 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
327 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
328 + if (compressed) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
329 + down(&msblk->read_data_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
330 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
331 + for (bytes = 0, k = 0; k < b; k++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
332 + avail_bytes = (c_byte - bytes) > (msblk->devblksize - offset) ? |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
333 + msblk->devblksize - offset : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
334 + c_byte - bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
335 + wait_on_buffer(bh[k]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
336 + if (!buffer_uptodate(bh[k])) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
337 + goto block_release; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
338 + memcpy(c_buffer + bytes, bh[k]->b_data + offset, avail_bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
339 + bytes += avail_bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
340 + offset = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
341 + brelse(bh[k]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
342 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
343 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
344 + /* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
345 + * uncompress block |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
346 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
347 + if (compressed) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
348 + int zlib_err; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
349 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
350 + msblk->stream.next_in = c_buffer; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
351 + msblk->stream.avail_in = c_byte; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
352 + msblk->stream.next_out = buffer; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
353 + msblk->stream.avail_out = msblk->read_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
354 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
355 + if (((zlib_err = zlib_inflateInit(&msblk->stream)) != Z_OK) || |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
356 + ((zlib_err = zlib_inflate(&msblk->stream, Z_FINISH)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
357 + != Z_STREAM_END) || ((zlib_err = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
358 + zlib_inflateEnd(&msblk->stream)) != Z_OK)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
359 + ERROR("zlib_fs returned unexpected result 0x%x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
360 + zlib_err); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
361 + bytes = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
362 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
363 + bytes = msblk->stream.total_out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
364 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
365 + up(&msblk->read_data_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
366 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
367 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
368 + if (next_index) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
369 + *next_index = index + c_byte + (length ? 0 : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
370 + (SQUASHFS_CHECK_DATA(msblk->sblk.flags) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
371 + ? 3 : 2)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
372 + return bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
373 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
374 +block_release: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
375 + while (--b >= 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
376 + brelse(bh[b]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
377 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
378 +read_failure: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
379 + ERROR("sb_bread failed reading block 0x%x\n", cur_index); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
380 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
381 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
382 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
383 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
384 +SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, char *buffer, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
385 + long long block, unsigned int offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
386 + int length, long long *next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
387 + unsigned int *next_offset) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
388 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
389 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
390 + int n, i, bytes, return_length = length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
391 + long long next_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
392 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
393 + TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
394 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
395 + while ( 1 ) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
396 + for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
397 + if (msblk->block_cache[i].block == block) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
398 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
399 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
400 + down(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
401 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
402 + if (i == SQUASHFS_CACHED_BLKS) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
403 + /* read inode header block */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
404 + for (i = msblk->next_cache, n = SQUASHFS_CACHED_BLKS; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
405 + n ; n --, i = (i + 1) % |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
406 + SQUASHFS_CACHED_BLKS) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
407 + if (msblk->block_cache[i].block != |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
408 + SQUASHFS_USED_BLK) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
409 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
410 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
411 + if (n == 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
412 + wait_queue_t wait; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
413 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
414 + init_waitqueue_entry(&wait, current); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
415 + add_wait_queue(&msblk->waitq, &wait); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
416 + set_current_state(TASK_UNINTERRUPTIBLE); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
417 + up(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
418 + schedule(); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
419 + set_current_state(TASK_RUNNING); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
420 + remove_wait_queue(&msblk->waitq, &wait); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
421 + continue; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
422 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
423 + msblk->next_cache = (i + 1) % SQUASHFS_CACHED_BLKS; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
424 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
425 + if (msblk->block_cache[i].block == |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
426 + SQUASHFS_INVALID_BLK) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
427 + if (!(msblk->block_cache[i].data = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
428 + kmalloc(SQUASHFS_METADATA_SIZE, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
429 + GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
430 + ERROR("Failed to allocate cache" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
431 + "block\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
432 + up(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
433 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
434 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
435 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
436 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
437 + msblk->block_cache[i].block = SQUASHFS_USED_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
438 + up(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
439 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
440 + if (!(msblk->block_cache[i].length = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
441 + squashfs_read_data(s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
442 + msblk->block_cache[i].data, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
443 + block, 0, &next_index))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
444 + ERROR("Unable to read cache block [%llx:%x]\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
445 + block, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
446 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
447 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
448 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
449 + down(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
450 + wake_up(&msblk->waitq); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
451 + msblk->block_cache[i].block = block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
452 + msblk->block_cache[i].next_index = next_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
453 + TRACE("Read cache block [%llx:%x]\n", block, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
454 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
455 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
456 + if (msblk->block_cache[i].block != block) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
457 + up(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
458 + continue; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
459 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
460 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
461 + if ((bytes = msblk->block_cache[i].length - offset) >= length) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
462 + if (buffer) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
463 + memcpy(buffer, msblk->block_cache[i].data + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
464 + offset, length); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
465 + if (msblk->block_cache[i].length - offset == length) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
466 + *next_block = msblk->block_cache[i].next_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
467 + *next_offset = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
468 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
469 + *next_block = block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
470 + *next_offset = offset + length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
471 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
472 + up(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
473 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
474 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
475 + if (buffer) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
476 + memcpy(buffer, msblk->block_cache[i].data + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
477 + offset, bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
478 + buffer += bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
479 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
480 + block = msblk->block_cache[i].next_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
481 + up(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
482 + length -= bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
483 + offset = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
484 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
485 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
486 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
487 +finish: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
488 + return return_length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
489 +out: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
490 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
491 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
492 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
493 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
494 +static int get_fragment_location(struct super_block *s, unsigned int fragment, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
495 + long long *fragment_start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
496 + unsigned int *fragment_size) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
497 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
498 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
499 + long long start_block = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
500 + msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
501 + int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
502 + struct squashfs_fragment_entry fragment_entry; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
503 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
504 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
505 + struct squashfs_fragment_entry sfragment_entry; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
506 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
507 + if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
508 + start_block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
509 + sizeof(sfragment_entry), &start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
510 + &offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
511 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
512 + SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
513 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
514 + if (!squashfs_get_cached_block(s, (char *) &fragment_entry, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
515 + start_block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
516 + sizeof(fragment_entry), &start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
517 + &offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
518 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
519 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
520 + *fragment_start_block = fragment_entry.start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
521 + *fragment_size = fragment_entry.size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
522 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
523 + return 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
524 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
525 +out: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
526 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
527 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
528 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
529 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
530 +SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, struct |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
531 + squashfs_fragment_cache *fragment) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
532 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
533 + down(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
534 + fragment->locked --; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
535 + wake_up(&msblk->fragment_wait_queue); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
536 + up(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
537 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
538 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
539 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
540 +SQSH_EXTERN struct squashfs_fragment_cache *get_cached_fragment(struct super_block |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
541 + *s, long long start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
542 + int length) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
543 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
544 + int i, n; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
545 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
546 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
547 + while ( 1 ) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
548 + down(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
549 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
550 + for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
551 + msblk->fragment[i].block != start_block; i++); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
552 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
553 + if (i == SQUASHFS_CACHED_FRAGMENTS) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
554 + for (i = msblk->next_fragment, n = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
555 + SQUASHFS_CACHED_FRAGMENTS; n && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
556 + msblk->fragment[i].locked; n--, i = (i + 1) % |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
557 + SQUASHFS_CACHED_FRAGMENTS); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
558 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
559 + if (n == 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
560 + wait_queue_t wait; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
561 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
562 + init_waitqueue_entry(&wait, current); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
563 + add_wait_queue(&msblk->fragment_wait_queue, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
564 + &wait); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
565 + set_current_state(TASK_UNINTERRUPTIBLE); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
566 + up(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
567 + schedule(); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
568 + set_current_state(TASK_RUNNING); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
569 + remove_wait_queue(&msblk->fragment_wait_queue, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
570 + &wait); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
571 + continue; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
572 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
573 + msblk->next_fragment = (msblk->next_fragment + 1) % |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
574 + SQUASHFS_CACHED_FRAGMENTS; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
575 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
576 + if (msblk->fragment[i].data == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
577 + if (!(msblk->fragment[i].data = SQUASHFS_ALLOC |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
578 + (SQUASHFS_FILE_MAX_SIZE))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
579 + ERROR("Failed to allocate fragment " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
580 + "cache block\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
581 + up(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
582 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
583 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
584 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
585 + msblk->fragment[i].block = SQUASHFS_INVALID_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
586 + msblk->fragment[i].locked = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
587 + up(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
588 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
589 + if (!(msblk->fragment[i].length = squashfs_read_data(s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
590 + msblk->fragment[i].data, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
591 + start_block, length, NULL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
592 + ERROR("Unable to read fragment cache block " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
593 + "[%llx]\n", start_block); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
594 + msblk->fragment[i].locked = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
595 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
596 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
597 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
598 + msblk->fragment[i].block = start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
599 + TRACE("New fragment %d, start block %lld, locked %d\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
600 + i, msblk->fragment[i].block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
601 + msblk->fragment[i].locked); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
602 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
603 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
604 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
605 + msblk->fragment[i].locked++; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
606 + up(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
607 + TRACE("Got fragment %d, start block %lld, locked %d\n", i, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
608 + msblk->fragment[i].block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
609 + msblk->fragment[i].locked); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
610 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
611 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
612 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
613 + return &msblk->fragment[i]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
614 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
615 +out: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
616 + return NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
617 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
618 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
619 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
620 +static struct inode *squashfs_new_inode(struct super_block *s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
621 + struct squashfs_base_inode_header *inodeb) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
622 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
623 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
624 + struct inode *i = new_inode(s); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
625 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
626 + if (i) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
627 + i->i_ino = inodeb->inode_number; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
628 + i->i_mtime.tv_sec = inodeb->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
629 + i->i_atime.tv_sec = inodeb->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
630 + i->i_ctime.tv_sec = inodeb->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
631 + i->i_uid = msblk->uid[inodeb->uid]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
632 + i->i_mode = inodeb->mode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
633 + i->i_size = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
634 + if (inodeb->guid == SQUASHFS_GUIDS) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
635 + i->i_gid = i->i_uid; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
636 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
637 + i->i_gid = msblk->guid[inodeb->guid]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
638 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
639 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
640 + return i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
641 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
642 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
643 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
644 +static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
645 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
646 + struct inode *i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
647 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
648 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
649 + long long block = SQUASHFS_INODE_BLK(inode) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
650 + sblk->inode_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
651 + unsigned int offset = SQUASHFS_INODE_OFFSET(inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
652 + long long next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
653 + unsigned int next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
654 + union squashfs_inode_header id, sid; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
655 + struct squashfs_base_inode_header *inodeb = &id.base, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
656 + *sinodeb = &sid.base; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
657 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
658 + TRACE("Entered squashfs_iget\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
659 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
660 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
661 + if (!squashfs_get_cached_block(s, (char *) sinodeb, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
662 + offset, sizeof(*sinodeb), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
663 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
664 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
665 + SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
666 + sizeof(*sinodeb)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
667 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
668 + if (!squashfs_get_cached_block(s, (char *) inodeb, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
669 + offset, sizeof(*inodeb), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
670 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
671 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
672 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
673 + switch(inodeb->inode_type) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
674 + case SQUASHFS_FILE_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
675 + unsigned int frag_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
676 + long long frag_blk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
677 + struct squashfs_reg_inode_header *inodep = &id.reg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
678 + struct squashfs_reg_inode_header *sinodep = &sid.reg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
679 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
680 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
681 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
682 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
683 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
684 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
685 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
686 + SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
687 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
688 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
689 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
690 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
691 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
692 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
693 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
694 + frag_blk = SQUASHFS_INVALID_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
695 + if (inodep->fragment != SQUASHFS_INVALID_FRAG && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
696 + !get_fragment_location(s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
697 + inodep->fragment, &frag_blk, &frag_size)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
698 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
699 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
700 + if((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
701 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
702 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
703 + i->i_nlink = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
704 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
705 + i->i_fop = &generic_ro_fops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
706 + i->i_mode |= S_IFREG; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
707 + i->i_blocks = ((i->i_size - 1) >> 9) + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
708 + SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
709 + SQUASHFS_I(i)->u.s1.fragment_size = frag_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
710 + SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
711 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
712 + SQUASHFS_I(i)->u.s1.block_list_start = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
713 + SQUASHFS_I(i)->offset = next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
714 + if (sblk->block_size > 4096) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
715 + i->i_data.a_ops = &squashfs_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
716 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
717 + i->i_data.a_ops = &squashfs_aops_4K; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
718 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
719 + TRACE("File inode %x:%x, start_block %llx, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
720 + "block_list_start %llx, offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
721 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
722 + inodep->start_block, next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
723 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
724 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
725 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
726 + case SQUASHFS_LREG_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
727 + unsigned int frag_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
728 + long long frag_blk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
729 + struct squashfs_lreg_inode_header *inodep = &id.lreg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
730 + struct squashfs_lreg_inode_header *sinodep = &sid.lreg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
731 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
732 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
733 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
734 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
735 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
736 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
737 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
738 + SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
739 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
740 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
741 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
742 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
743 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
744 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
745 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
746 + frag_blk = SQUASHFS_INVALID_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
747 + if (inodep->fragment != SQUASHFS_INVALID_FRAG && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
748 + !get_fragment_location(s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
749 + inodep->fragment, &frag_blk, &frag_size)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
750 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
751 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
752 + if((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
753 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
754 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
755 + i->i_nlink = inodep->nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
756 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
757 + i->i_fop = &generic_ro_fops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
758 + i->i_mode |= S_IFREG; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
759 + i->i_blocks = ((i->i_size - 1) >> 9) + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
760 + SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
761 + SQUASHFS_I(i)->u.s1.fragment_size = frag_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
762 + SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
763 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
764 + SQUASHFS_I(i)->u.s1.block_list_start = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
765 + SQUASHFS_I(i)->offset = next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
766 + if (sblk->block_size > 4096) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
767 + i->i_data.a_ops = &squashfs_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
768 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
769 + i->i_data.a_ops = &squashfs_aops_4K; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
770 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
771 + TRACE("File inode %x:%x, start_block %llx, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
772 + "block_list_start %llx, offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
773 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
774 + inodep->start_block, next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
775 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
776 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
777 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
778 + case SQUASHFS_DIR_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
779 + struct squashfs_dir_inode_header *inodep = &id.dir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
780 + struct squashfs_dir_inode_header *sinodep = &sid.dir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
781 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
782 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
783 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
784 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
785 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
786 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
787 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
788 + SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
789 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
790 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
791 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
792 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
793 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
794 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
795 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
796 + if((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
797 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
798 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
799 + i->i_nlink = inodep->nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
800 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
801 + i->i_op = &squashfs_dir_inode_ops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
802 + i->i_fop = &squashfs_dir_ops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
803 + i->i_mode |= S_IFDIR; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
804 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
805 + SQUASHFS_I(i)->offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
806 + SQUASHFS_I(i)->u.s2.directory_index_count = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
807 + SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
808 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
809 + TRACE("Directory inode %x:%x, start_block %x, offset " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
810 + "%x\n", SQUASHFS_INODE_BLK(inode), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
811 + offset, inodep->start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
812 + inodep->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
813 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
814 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
815 + case SQUASHFS_LDIR_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
816 + struct squashfs_ldir_inode_header *inodep = &id.ldir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
817 + struct squashfs_ldir_inode_header *sinodep = &sid.ldir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
818 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
819 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
820 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
821 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
822 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
823 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
824 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
825 + SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
826 + sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
827 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
828 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
829 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
830 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
831 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
832 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
833 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
834 + if((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
835 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
836 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
837 + i->i_nlink = inodep->nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
838 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
839 + i->i_op = &squashfs_dir_inode_ops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
840 + i->i_fop = &squashfs_dir_ops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
841 + i->i_mode |= S_IFDIR; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
842 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
843 + SQUASHFS_I(i)->offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
844 + SQUASHFS_I(i)->u.s2.directory_index_start = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
845 + SQUASHFS_I(i)->u.s2.directory_index_offset = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
846 + next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
847 + SQUASHFS_I(i)->u.s2.directory_index_count = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
848 + inodep->i_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
849 + SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
850 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
851 + TRACE("Long directory inode %x:%x, start_block %x, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
852 + "offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
853 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
854 + inodep->start_block, inodep->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
855 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
856 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
857 + case SQUASHFS_SYMLINK_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
858 + struct squashfs_symlink_inode_header *inodep = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
859 + &id.symlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
860 + struct squashfs_symlink_inode_header *sinodep = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
861 + &sid.symlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
862 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
863 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
864 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
865 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
866 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
867 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
868 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
869 + SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
870 + sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
871 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
872 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
873 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
874 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
875 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
876 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
877 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
878 + if((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
879 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
880 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
881 + i->i_nlink = inodep->nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
882 + i->i_size = inodep->symlink_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
883 + i->i_op = &page_symlink_inode_operations; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
884 + i->i_data.a_ops = &squashfs_symlink_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
885 + i->i_mode |= S_IFLNK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
886 + SQUASHFS_I(i)->start_block = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
887 + SQUASHFS_I(i)->offset = next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
888 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
889 + TRACE("Symbolic link inode %x:%x, start_block %llx, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
890 + "offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
891 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
892 + next_block, next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
893 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
894 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
895 + case SQUASHFS_BLKDEV_TYPE: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
896 + case SQUASHFS_CHRDEV_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
897 + struct squashfs_dev_inode_header *inodep = &id.dev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
898 + struct squashfs_dev_inode_header *sinodep = &sid.dev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
899 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
900 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
901 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
902 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
903 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
904 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
905 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
906 + SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
907 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
908 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
909 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
910 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
911 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
912 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
913 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
914 + if ((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
915 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
916 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
917 + i->i_nlink = inodep->nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
918 + i->i_mode |= (inodeb->inode_type == |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
919 + SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
920 + S_IFBLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
921 + init_special_inode(i, i->i_mode, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
922 + old_decode_dev(inodep->rdev)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
923 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
924 + TRACE("Device inode %x:%x, rdev %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
925 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
926 + inodep->rdev); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
927 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
928 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
929 + case SQUASHFS_FIFO_TYPE: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
930 + case SQUASHFS_SOCKET_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
931 + struct squashfs_ipc_inode_header *inodep = &id.ipc; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
932 + struct squashfs_ipc_inode_header *sinodep = &sid.ipc; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
933 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
934 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
935 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
936 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
937 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
938 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
939 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
940 + SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
941 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
942 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
943 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
944 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
945 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
946 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
947 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
948 + if ((i = squashfs_new_inode(s, inodeb)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
949 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
950 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
951 + i->i_nlink = inodep->nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
952 + i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
953 + ? S_IFIFO : S_IFSOCK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
954 + init_special_inode(i, i->i_mode, 0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
955 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
956 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
957 + default: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
958 + ERROR("Unknown inode type %d in squashfs_iget!\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
959 + inodeb->inode_type); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
960 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
961 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
962 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
963 + insert_inode_hash(i); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
964 + return i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
965 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
966 +failed_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
967 + ERROR("Unable to read inode [%llx:%x]\n", block, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
968 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
969 +failed_read1: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
970 + return NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
971 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
972 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
973 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
974 +static int read_fragment_index_table(struct super_block *s) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
975 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
976 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
977 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
978 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
979 + /* Allocate fragment index table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
980 + if (!(msblk->fragment_index = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
981 + (sblk->fragments), GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
982 + ERROR("Failed to allocate uid/gid table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
983 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
984 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
985 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
986 + if (SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments) && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
987 + !squashfs_read_data(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
988 + msblk->fragment_index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
989 + sblk->fragment_table_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
990 + SQUASHFS_FRAGMENT_INDEX_BYTES |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
991 + (sblk->fragments) | |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
992 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
993 + ERROR("unable to read fragment index table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
994 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
995 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
996 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
997 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
998 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
999 + long long fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1000 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1001 + for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1002 + i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1003 + SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1004 + &msblk->fragment_index[i], 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1005 + msblk->fragment_index[i] = fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1006 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1007 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1008 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1009 + return 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1010 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1011 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1012 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1013 +static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1014 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1015 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1016 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1017 + msblk->iget = squashfs_iget; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1018 + msblk->read_blocklist = read_blocklist; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1019 + msblk->read_fragment_index_table = read_fragment_index_table; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1020 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1021 + if (sblk->s_major == 1) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1022 + if (!squashfs_1_0_supported(msblk)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1023 + SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1024 + "are unsupported\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1025 + SERROR("Please recompile with " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1026 + "Squashfs 1.0 support enabled\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1027 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1028 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1029 + } else if (sblk->s_major == 2) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1030 + if (!squashfs_2_0_supported(msblk)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1031 + SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1032 + "are unsupported\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1033 + SERROR("Please recompile with " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1034 + "Squashfs 2.0 support enabled\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1035 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1036 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1037 + } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor > |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1038 + SQUASHFS_MINOR) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1039 + SERROR("Major/Minor mismatch, trying to mount newer %d.%d " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1040 + "filesystem\n", sblk->s_major, sblk->s_minor); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1041 + SERROR("Please update your kernel\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1042 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1043 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1044 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1045 + return 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1046 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1047 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1048 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1049 +static int squashfs_fill_super(struct super_block *s, void *data, int silent) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1050 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1051 + struct squashfs_sb_info *msblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1052 + struct squashfs_super_block *sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1053 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1054 + char b[BDEVNAME_SIZE]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1055 + struct inode *root; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1056 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1057 + TRACE("Entered squashfs_read_superblock\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1058 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1059 + if (!(s->s_fs_info = kmalloc(sizeof(struct squashfs_sb_info), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1060 + GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1061 + ERROR("Failed to allocate superblock\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1062 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1063 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1064 + memset(s->s_fs_info, 0, sizeof(struct squashfs_sb_info)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1065 + msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1066 + if (!(msblk->stream.workspace = vmalloc(zlib_inflate_workspacesize()))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1067 + ERROR("Failed to allocate zlib workspace\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1068 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1069 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1070 + sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1071 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1072 + msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1073 + msblk->devblksize_log2 = ffz(~msblk->devblksize); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1074 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1075 + init_MUTEX(&msblk->read_data_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1076 + init_MUTEX(&msblk->read_page_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1077 + init_MUTEX(&msblk->block_cache_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1078 + init_MUTEX(&msblk->fragment_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1079 + init_MUTEX(&msblk->meta_index_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1080 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1081 + init_waitqueue_head(&msblk->waitq); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1082 + init_waitqueue_head(&msblk->fragment_wait_queue); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1083 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1084 + if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1085 + sizeof(struct squashfs_super_block) | |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1086 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1087 + SERROR("unable to read superblock\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1088 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1089 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1090 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1091 + /* Check it is a SQUASHFS superblock */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1092 + msblk->swap = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1093 + if ((s->s_magic = sblk->s_magic) != SQUASHFS_MAGIC) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1094 + if (sblk->s_magic == SQUASHFS_MAGIC_SWAP) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1095 + struct squashfs_super_block ssblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1096 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1097 + WARNING("Mounting a different endian SQUASHFS " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1098 + "filesystem on %s\n", bdevname(s->s_bdev, b)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1099 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1100 + SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1101 + memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1102 + msblk->swap = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1103 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1104 + SERROR("Can't find a SQUASHFS superblock on %s\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1105 + bdevname(s->s_bdev, b)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1106 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1107 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1108 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1109 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1110 + /* Check the MAJOR & MINOR versions */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1111 + if(!supported_squashfs_filesystem(msblk, silent)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1112 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1113 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1114 + TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1115 + TRACE("Inodes are %scompressed\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1116 + SQUASHFS_UNCOMPRESSED_INODES |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1117 + (sblk->flags) ? "un" : ""); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1118 + TRACE("Data is %scompressed\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1119 + SQUASHFS_UNCOMPRESSED_DATA(sblk->flags) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1120 + ? "un" : ""); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1121 + TRACE("Check data is %s present in the filesystem\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1122 + SQUASHFS_CHECK_DATA(sblk->flags) ? |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1123 + "" : "not"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1124 + TRACE("Filesystem size %lld bytes\n", sblk->bytes_used); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1125 + TRACE("Block size %d\n", sblk->block_size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1126 + TRACE("Number of inodes %d\n", sblk->inodes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1127 + if (sblk->s_major > 1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1128 + TRACE("Number of fragments %d\n", sblk->fragments); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1129 + TRACE("Number of uids %d\n", sblk->no_uids); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1130 + TRACE("Number of gids %d\n", sblk->no_guids); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1131 + TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1132 + TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1133 + if (sblk->s_major > 1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1134 + TRACE("sblk->fragment_table_start %llx\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1135 + sblk->fragment_table_start); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1136 + TRACE("sblk->uid_start %llx\n", sblk->uid_start); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1137 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1138 + s->s_flags |= MS_RDONLY; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1139 + s->s_op = &squashfs_ops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1140 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1141 + /* Init inode_table block pointer array */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1142 + if (!(msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1143 + SQUASHFS_CACHED_BLKS, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1144 + ERROR("Failed to allocate block cache\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1145 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1146 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1147 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1148 + for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1149 + msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1150 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1151 + msblk->next_cache = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1152 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1153 + /* Allocate read_data block */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1154 + msblk->read_size = (sblk->block_size < SQUASHFS_METADATA_SIZE) ? |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1155 + SQUASHFS_METADATA_SIZE : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1156 + sblk->block_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1157 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1158 + if (!(msblk->read_data = kmalloc(msblk->read_size, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1159 + ERROR("Failed to allocate read_data block\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1160 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1161 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1162 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1163 + /* Allocate read_page block */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1164 + if (!(msblk->read_page = kmalloc(sblk->block_size, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1165 + ERROR("Failed to allocate read_page block\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1166 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1167 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1168 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1169 + /* Allocate uid and gid tables */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1170 + if (!(msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1171 + sizeof(unsigned int), GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1172 + ERROR("Failed to allocate uid/gid table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1173 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1174 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1175 + msblk->guid = msblk->uid + sblk->no_uids; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1176 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1177 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1178 + unsigned int suid[sblk->no_uids + sblk->no_guids]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1179 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1180 + if (!squashfs_read_data(s, (char *) &suid, sblk->uid_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1181 + ((sblk->no_uids + sblk->no_guids) * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1182 + sizeof(unsigned int)) | |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1183 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1184 + ERROR("unable to read uid/gid table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1185 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1186 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1187 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1188 + SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1189 + sblk->no_guids), (sizeof(unsigned int) * 8)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1190 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1191 + if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1192 + ((sblk->no_uids + sblk->no_guids) * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1193 + sizeof(unsigned int)) | |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1194 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1195 + ERROR("unable to read uid/gid table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1196 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1197 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1198 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1199 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1200 + if (sblk->s_major == 1 && squashfs_1_0_supported(msblk)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1201 + goto allocate_root; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1202 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1203 + if (!(msblk->fragment = kmalloc(sizeof(struct squashfs_fragment_cache) * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1204 + SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1205 + ERROR("Failed to allocate fragment block cache\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1206 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1207 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1208 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1209 + for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1210 + msblk->fragment[i].locked = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1211 + msblk->fragment[i].block = SQUASHFS_INVALID_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1212 + msblk->fragment[i].data = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1213 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1214 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1215 + msblk->next_fragment = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1216 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1217 + /* Allocate fragment index table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1218 + if (msblk->read_fragment_index_table(s) == 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1219 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1220 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1221 +allocate_root: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1222 + if ((root = (msblk->iget)(s, sblk->root_inode)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1223 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1224 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1225 + if ((s->s_root = d_alloc_root(root)) == NULL) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1226 + ERROR("Root inode create failed\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1227 + iput(root); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1228 + goto failed_mount; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1229 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1230 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1231 + TRACE("Leaving squashfs_read_super\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1232 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1233 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1234 +failed_mount: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1235 + kfree(msblk->fragment_index); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1236 + kfree(msblk->fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1237 + kfree(msblk->uid); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1238 + kfree(msblk->read_page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1239 + kfree(msblk->read_data); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1240 + kfree(msblk->block_cache); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1241 + kfree(msblk->fragment_index_2); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1242 + vfree(msblk->stream.workspace); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1243 + kfree(s->s_fs_info); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1244 + s->s_fs_info = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1245 + return -EINVAL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1246 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1247 +failure: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1248 + return -ENOMEM; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1249 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1250 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1251 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1252 +static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1253 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1254 + struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1255 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1256 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1257 + TRACE("Entered squashfs_statfs\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1258 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1259 + buf->f_type = SQUASHFS_MAGIC; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1260 + buf->f_bsize = sblk->block_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1261 + buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1262 + buf->f_bfree = buf->f_bavail = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1263 + buf->f_files = sblk->inodes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1264 + buf->f_ffree = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1265 + buf->f_namelen = SQUASHFS_NAME_LEN; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1266 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1267 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1268 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1269 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1270 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1271 +static int squashfs_symlink_readpage(struct file *file, struct page *page) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1272 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1273 + struct inode *inode = page->mapping->host; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1274 + int index = page->index << PAGE_CACHE_SHIFT, length, bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1275 + long long block = SQUASHFS_I(inode)->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1276 + int offset = SQUASHFS_I(inode)->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1277 + void *pageaddr = kmap(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1278 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1279 + TRACE("Entered squashfs_symlink_readpage, page index %ld, start block " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1280 + "%llx, offset %x\n", page->index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1281 + SQUASHFS_I(inode)->start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1282 + SQUASHFS_I(inode)->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1283 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1284 + for (length = 0; length < index; length += bytes) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1285 + if (!(bytes = squashfs_get_cached_block(inode->i_sb, NULL, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1286 + block, offset, PAGE_CACHE_SIZE, &block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1287 + &offset))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1288 + ERROR("Unable to read symbolic link [%llx:%x]\n", block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1289 + offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1290 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1291 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1292 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1293 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1294 + if (length != index) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1295 + ERROR("(squashfs_symlink_readpage) length != index\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1296 + bytes = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1297 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1298 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1299 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1300 + bytes = (i_size_read(inode) - length) > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1301 + i_size_read(inode) - length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1302 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1303 + if (!(bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1304 + offset, bytes, &block, &offset))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1305 + ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1306 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1307 +skip_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1308 + memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1309 + kunmap(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1310 + SetPageUptodate(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1311 + unlock_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1312 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1313 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1314 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1315 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1316 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1317 +struct meta_index *locate_meta_index(struct inode *inode, int index, int offset) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1318 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1319 + struct meta_index *meta = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1320 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1321 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1322 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1323 + down(&msblk->meta_index_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1324 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1325 + TRACE("locate_meta_index: index %d, offset %d\n", index, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1326 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1327 + if(msblk->meta_index == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1328 + goto not_allocated; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1329 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1330 + for (i = 0; i < SQUASHFS_META_NUMBER; i ++) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1331 + if (msblk->meta_index[i].inode_number == inode->i_ino && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1332 + msblk->meta_index[i].offset >= offset && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1333 + msblk->meta_index[i].offset <= index && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1334 + msblk->meta_index[i].locked == 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1335 + TRACE("locate_meta_index: entry %d, offset %d\n", i, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1336 + msblk->meta_index[i].offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1337 + meta = &msblk->meta_index[i]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1338 + offset = meta->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1339 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1340 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1341 + if (meta) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1342 + meta->locked = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1343 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1344 +not_allocated: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1345 + up(&msblk->meta_index_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1346 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1347 + return meta; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1348 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1349 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1350 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1351 +struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1352 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1353 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1354 + struct meta_index *meta = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1355 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1356 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1357 + down(&msblk->meta_index_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1358 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1359 + TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1360 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1361 + if(msblk->meta_index == NULL) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1362 + if (!(msblk->meta_index = kmalloc(sizeof(struct meta_index) * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1363 + SQUASHFS_META_NUMBER, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1364 + ERROR("Failed to allocate meta_index\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1365 + goto failed; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1366 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1367 + for(i = 0; i < SQUASHFS_META_NUMBER; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1368 + msblk->meta_index[i].inode_number = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1369 + msblk->meta_index[i].locked = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1370 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1371 + msblk->next_meta_index = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1372 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1373 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1374 + for(i = SQUASHFS_META_NUMBER; i && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1375 + msblk->meta_index[msblk->next_meta_index].locked; i --) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1376 + msblk->next_meta_index = (msblk->next_meta_index + 1) % |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1377 + SQUASHFS_META_NUMBER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1378 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1379 + if(i == 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1380 + TRACE("empty_meta_index: failed!\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1381 + goto failed; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1382 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1383 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1384 + TRACE("empty_meta_index: returned meta entry %d, %p\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1385 + msblk->next_meta_index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1386 + &msblk->meta_index[msblk->next_meta_index]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1387 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1388 + meta = &msblk->meta_index[msblk->next_meta_index]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1389 + msblk->next_meta_index = (msblk->next_meta_index + 1) % |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1390 + SQUASHFS_META_NUMBER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1391 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1392 + meta->inode_number = inode->i_ino; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1393 + meta->offset = offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1394 + meta->skip = skip; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1395 + meta->entries = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1396 + meta->locked = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1397 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1398 +failed: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1399 + up(&msblk->meta_index_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1400 + return meta; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1401 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1402 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1403 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1404 +void release_meta_index(struct inode *inode, struct meta_index *meta) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1405 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1406 + meta->locked = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1407 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1408 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1409 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1410 +static int read_block_index(struct super_block *s, int blocks, char *block_list, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1411 + long long *start_block, int *offset) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1412 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1413 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1414 + unsigned int *block_listp; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1415 + int block = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1416 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1417 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1418 + char sblock_list[blocks << 2]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1419 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1420 + if (!squashfs_get_cached_block(s, sblock_list, *start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1421 + *offset, blocks << 2, start_block, offset)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1422 + ERROR("Unable to read block list [%llx:%x]\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1423 + *start_block, *offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1424 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1425 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1426 + SQUASHFS_SWAP_INTS(((unsigned int *)block_list), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1427 + ((unsigned int *)sblock_list), blocks); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1428 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1429 + if (!squashfs_get_cached_block(s, block_list, *start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1430 + *offset, blocks << 2, start_block, offset)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1431 + ERROR("Unable to read block list [%llx:%x]\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1432 + *start_block, *offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1433 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1434 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1435 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1436 + for (block_listp = (unsigned int *) block_list; blocks; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1437 + block_listp++, blocks --) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1438 + block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1439 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1440 + return block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1441 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1442 +failure: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1443 + return -1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1444 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1445 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1446 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1447 +#define SIZE 256 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1448 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1449 +static inline int calculate_skip(int blocks) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1450 + int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1451 + return skip >= 7 ? 7 : skip + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1452 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1453 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1454 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1455 +static int get_meta_index(struct inode *inode, int index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1456 + long long *index_block, int *index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1457 + long long *data_block, char *block_list) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1458 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1459 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1460 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1461 + int skip = calculate_skip(i_size_read(inode) >> sblk->block_log); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1462 + int offset = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1463 + struct meta_index *meta; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1464 + struct meta_entry *meta_entry; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1465 + long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1466 + int cur_offset = SQUASHFS_I(inode)->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1467 + long long cur_data_block = SQUASHFS_I(inode)->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1468 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1469 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1470 + index /= SQUASHFS_META_INDEXES * skip; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1471 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1472 + while ( offset < index ) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1473 + meta = locate_meta_index(inode, index, offset + 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1474 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1475 + if (meta == NULL) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1476 + if ((meta = empty_meta_index(inode, offset + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1477 + skip)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1478 + goto all_done; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1479 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1480 + offset = index < meta->offset + meta->entries ? index : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1481 + meta->offset + meta->entries - 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1482 + meta_entry = &meta->meta_entry[offset - meta->offset]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1483 + cur_index_block = meta_entry->index_block + sblk->inode_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1484 + cur_offset = meta_entry->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1485 + cur_data_block = meta_entry->data_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1486 + TRACE("get_meta_index: offset %d, meta->offset %d, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1487 + "meta->entries %d\n", offset, meta->offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1488 + meta->entries); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1489 + TRACE("get_meta_index: index_block 0x%llx, offset 0x%x" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1490 + " data_block 0x%llx\n", cur_index_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1491 + cur_offset, cur_data_block); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1492 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1493 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1494 + for (i = meta->offset + meta->entries; i <= index && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1495 + i < meta->offset + SQUASHFS_META_ENTRIES; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1496 + int blocks = skip * SQUASHFS_META_INDEXES; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1497 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1498 + while (blocks) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1499 + int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1500 + blocks; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1501 + int res = read_block_index(inode->i_sb, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1502 + block_list, &cur_index_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1503 + &cur_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1504 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1505 + if (res == -1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1506 + goto failed; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1507 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1508 + cur_data_block += res; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1509 + blocks -= block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1510 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1511 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1512 + meta_entry = &meta->meta_entry[i - meta->offset]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1513 + meta_entry->index_block = cur_index_block - sblk->inode_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1514 + meta_entry->offset = cur_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1515 + meta_entry->data_block = cur_data_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1516 + meta->entries ++; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1517 + offset ++; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1518 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1519 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1520 + TRACE("get_meta_index: meta->offset %d, meta->entries %d\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1521 + meta->offset, meta->entries); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1522 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1523 + release_meta_index(inode, meta); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1524 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1525 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1526 +all_done: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1527 + *index_block = cur_index_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1528 + *index_offset = cur_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1529 + *data_block = cur_data_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1530 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1531 + return offset * SQUASHFS_META_INDEXES * skip; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1532 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1533 +failed: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1534 + release_meta_index(inode, meta); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1535 + return -1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1536 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1537 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1538 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1539 +static long long read_blocklist(struct inode *inode, int index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1540 + int readahead_blks, char *block_list, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1541 + unsigned short **block_p, unsigned int *bsize) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1542 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1543 + long long block_ptr; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1544 + int offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1545 + long long block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1546 + int res = get_meta_index(inode, index, &block_ptr, &offset, &block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1547 + block_list); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1548 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1549 + TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1550 + " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1551 + block); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1552 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1553 + if(res == -1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1554 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1555 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1556 + index -= res; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1557 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1558 + while ( index ) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1559 + int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1560 + int res = read_block_index(inode->i_sb, blocks, block_list, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1561 + &block_ptr, &offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1562 + if (res == -1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1563 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1564 + block += res; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1565 + index -= blocks; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1566 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1567 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1568 + if (read_block_index(inode->i_sb, 1, block_list, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1569 + &block_ptr, &offset) == -1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1570 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1571 + *bsize = *((unsigned int *) block_list); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1572 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1573 + return block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1574 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1575 +failure: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1576 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1577 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1578 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1579 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1580 +static int squashfs_readpage(struct file *file, struct page *page) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1581 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1582 + struct inode *inode = page->mapping->host; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1583 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1584 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1585 + unsigned char *block_list; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1586 + long long block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1587 + unsigned int bsize, i = 0, bytes = 0, byte_offset = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1588 + int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1589 + void *pageaddr; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1590 + struct squashfs_fragment_cache *fragment = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1591 + char *data_ptr = msblk->read_page; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1592 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1593 + int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1594 + int start_index = page->index & ~mask; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1595 + int end_index = start_index | mask; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1596 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1597 + TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1598 + page->index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1599 + SQUASHFS_I(inode)->start_block); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1600 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1601 + if (!(block_list = kmalloc(SIZE, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1602 + ERROR("Failed to allocate block_list\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1603 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1604 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1605 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1606 + if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1607 + PAGE_CACHE_SHIFT)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1608 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1609 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1610 + if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1611 + || index < (i_size_read(inode) >> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1612 + sblk->block_log)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1613 + if ((block = (msblk->read_blocklist)(inode, index, 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1614 + block_list, NULL, &bsize)) == 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1615 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1616 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1617 + down(&msblk->read_page_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1618 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1619 + if (!(bytes = squashfs_read_data(inode->i_sb, msblk->read_page, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1620 + block, bsize, NULL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1621 + ERROR("Unable to read page, block %llx, size %x\n", block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1622 + bsize); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1623 + up(&msblk->read_page_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1624 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1625 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1626 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1627 + if ((fragment = get_cached_fragment(inode->i_sb, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1628 + SQUASHFS_I(inode)-> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1629 + u.s1.fragment_start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1630 + SQUASHFS_I(inode)->u.s1.fragment_size)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1631 + == NULL) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1632 + ERROR("Unable to read page, block %llx, size %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1633 + SQUASHFS_I(inode)-> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1634 + u.s1.fragment_start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1635 + (int) SQUASHFS_I(inode)-> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1636 + u.s1.fragment_size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1637 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1638 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1639 + bytes = SQUASHFS_I(inode)->u.s1.fragment_offset + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1640 + (i_size_read(inode) & (sblk->block_size |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1641 + - 1)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1642 + byte_offset = SQUASHFS_I(inode)->u.s1.fragment_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1643 + data_ptr = fragment->data; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1644 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1645 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1646 + for (i = start_index; i <= end_index && byte_offset < bytes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1647 + i++, byte_offset += PAGE_CACHE_SIZE) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1648 + struct page *push_page; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1649 + int available_bytes = (bytes - byte_offset) > PAGE_CACHE_SIZE ? |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1650 + PAGE_CACHE_SIZE : bytes - byte_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1651 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1652 + TRACE("bytes %d, i %d, byte_offset %d, available_bytes %d\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1653 + bytes, i, byte_offset, available_bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1654 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1655 + if (i == page->index) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1656 + pageaddr = kmap_atomic(page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1657 + memcpy(pageaddr, data_ptr + byte_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1658 + available_bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1659 + memset(pageaddr + available_bytes, 0, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1660 + PAGE_CACHE_SIZE - available_bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1661 + kunmap_atomic(pageaddr, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1662 + flush_dcache_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1663 + SetPageUptodate(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1664 + unlock_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1665 + } else if ((push_page = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1666 + grab_cache_page_nowait(page->mapping, i))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1667 + pageaddr = kmap_atomic(push_page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1668 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1669 + memcpy(pageaddr, data_ptr + byte_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1670 + available_bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1671 + memset(pageaddr + available_bytes, 0, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1672 + PAGE_CACHE_SIZE - available_bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1673 + kunmap_atomic(pageaddr, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1674 + flush_dcache_page(push_page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1675 + SetPageUptodate(push_page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1676 + unlock_page(push_page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1677 + page_cache_release(push_page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1678 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1679 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1680 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1681 + if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1682 + || index < (i_size_read(inode) >> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1683 + sblk->block_log)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1684 + up(&msblk->read_page_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1685 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1686 + release_cached_fragment(msblk, fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1687 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1688 + kfree(block_list); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1689 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1690 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1691 +skip_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1692 + pageaddr = kmap_atomic(page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1693 + memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1694 + kunmap_atomic(pageaddr, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1695 + flush_dcache_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1696 + SetPageUptodate(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1697 + unlock_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1698 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1699 + kfree(block_list); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1700 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1701 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1702 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1703 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1704 +static int squashfs_readpage4K(struct file *file, struct page *page) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1705 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1706 + struct inode *inode = page->mapping->host; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1707 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1708 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1709 + unsigned char *block_list; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1710 + long long block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1711 + unsigned int bsize, bytes = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1712 + void *pageaddr; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1713 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1714 + TRACE("Entered squashfs_readpage4K, page index %lx, start block %llx\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1715 + page->index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1716 + SQUASHFS_I(inode)->start_block); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1717 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1718 + if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1719 + PAGE_CACHE_SHIFT)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1720 + pageaddr = kmap_atomic(page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1721 + block_list = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1722 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1723 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1724 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1725 + if (!(block_list = kmalloc(SIZE, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1726 + ERROR("Failed to allocate block_list\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1727 + pageaddr = kmap_atomic(page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1728 + block_list = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1729 + goto skip_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1730 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1731 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1732 + if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1733 + || page->index < (i_size_read(inode) >> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1734 + sblk->block_log)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1735 + block = (msblk->read_blocklist)(inode, page->index, 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1736 + block_list, NULL, &bsize); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1737 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1738 + down(&msblk->read_page_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1739 + bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1740 + bsize, NULL); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1741 + pageaddr = kmap_atomic(page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1742 + if (bytes) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1743 + memcpy(pageaddr, msblk->read_page, bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1744 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1745 + ERROR("Unable to read page, block %llx, size %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1746 + block, bsize); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1747 + up(&msblk->read_page_mutex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1748 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1749 + struct squashfs_fragment_cache *fragment = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1750 + get_cached_fragment(inode->i_sb, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1751 + SQUASHFS_I(inode)-> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1752 + u.s1.fragment_start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1753 + SQUASHFS_I(inode)-> u.s1.fragment_size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1754 + pageaddr = kmap_atomic(page, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1755 + if (fragment) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1756 + bytes = i_size_read(inode) & (sblk->block_size - 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1757 + memcpy(pageaddr, fragment->data + SQUASHFS_I(inode)-> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1758 + u.s1.fragment_offset, bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1759 + release_cached_fragment(msblk, fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1760 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1761 + ERROR("Unable to read page, block %llx, size %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1762 + SQUASHFS_I(inode)-> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1763 + u.s1.fragment_start_block, (int) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1764 + SQUASHFS_I(inode)-> u.s1.fragment_size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1765 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1766 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1767 +skip_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1768 + memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1769 + kunmap_atomic(pageaddr, KM_USER0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1770 + flush_dcache_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1771 + SetPageUptodate(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1772 + unlock_page(page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1773 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1774 + kfree(block_list); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1775 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1776 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1777 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1778 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1779 +static int get_dir_index_using_offset(struct super_block *s, long long |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1780 + *next_block, unsigned int *next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1781 + long long index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1782 + unsigned int index_offset, int i_count, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1783 + long long f_pos) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1784 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1785 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1786 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1787 + int i, length = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1788 + struct squashfs_dir_index index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1789 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1790 + TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1791 + i_count, (unsigned int) f_pos); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1792 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1793 + f_pos =- 3; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1794 + if (f_pos == 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1795 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1796 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1797 + for (i = 0; i < i_count; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1798 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1799 + struct squashfs_dir_index sindex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1800 + squashfs_get_cached_block(s, (char *) &sindex, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1801 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1802 + sizeof(sindex), &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1803 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1804 + SQUASHFS_SWAP_DIR_INDEX(&index, &sindex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1805 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1806 + squashfs_get_cached_block(s, (char *) &index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1807 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1808 + sizeof(index), &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1809 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1810 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1811 + if (index.index > f_pos) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1812 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1813 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1814 + squashfs_get_cached_block(s, NULL, index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1815 + index.size + 1, &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1816 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1817 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1818 + length = index.index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1819 + *next_block = index.start_block + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1820 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1821 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1822 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1823 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1824 +finish: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1825 + return length + 3; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1826 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1827 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1828 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1829 +static int get_dir_index_using_name(struct super_block *s, long long |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1830 + *next_block, unsigned int *next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1831 + long long index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1832 + unsigned int index_offset, int i_count, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1833 + const char *name, int size) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1834 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1835 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1836 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1837 + int i, length = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1838 + struct squashfs_dir_index *index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1839 + char *str; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1840 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1841 + TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1842 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1843 + if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1844 + (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1845 + ERROR("Failed to allocate squashfs_dir_index\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1846 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1847 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1848 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1849 + index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1850 + strncpy(str, name, size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1851 + str[size] = '\0'; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1852 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1853 + for (i = 0; i < i_count; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1854 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1855 + struct squashfs_dir_index sindex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1856 + squashfs_get_cached_block(s, (char *) &sindex, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1857 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1858 + sizeof(sindex), &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1859 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1860 + SQUASHFS_SWAP_DIR_INDEX(index, &sindex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1861 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1862 + squashfs_get_cached_block(s, (char *) index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1863 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1864 + sizeof(struct squashfs_dir_index), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1865 + &index_start, &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1866 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1867 + squashfs_get_cached_block(s, index->name, index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1868 + index_offset, index->size + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1869 + &index_start, &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1870 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1871 + index->name[index->size + 1] = '\0'; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1872 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1873 + if (strcmp(index->name, str) > 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1874 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1875 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1876 + length = index->index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1877 + *next_block = index->start_block + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1878 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1879 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1880 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1881 + kfree(str); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1882 +failure: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1883 + return length + 3; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1884 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1885 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1886 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1887 +static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1888 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1889 + struct inode *i = file->f_dentry->d_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1890 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1891 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1892 + long long next_block = SQUASHFS_I(i)->start_block + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1893 + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1894 + int next_offset = SQUASHFS_I(i)->offset, length = 0, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1895 + dir_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1896 + struct squashfs_dir_header dirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1897 + struct squashfs_dir_entry *dire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1898 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1899 + TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1900 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1901 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1902 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1903 + ERROR("Failed to allocate squashfs_dir_entry\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1904 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1905 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1906 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1907 + while(file->f_pos < 3) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1908 + char *name; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1909 + int size, i_ino; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1910 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1911 + if(file->f_pos == 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1912 + name = "."; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1913 + size = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1914 + i_ino = i->i_ino; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1915 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1916 + name = ".."; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1917 + size = 2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1918 + i_ino = SQUASHFS_I(i)->u.s2.parent_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1919 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1920 + TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1921 + (unsigned int) dirent, name, size, (int) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1922 + file->f_pos, i_ino, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1923 + squashfs_filetype_table[1]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1924 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1925 + if (filldir(dirent, name, size, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1926 + file->f_pos, i_ino, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1927 + squashfs_filetype_table[1]) < 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1928 + TRACE("Filldir returned less than 0\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1929 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1930 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1931 + file->f_pos += size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1932 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1933 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1934 + length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1935 + SQUASHFS_I(i)->u.s2.directory_index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1936 + SQUASHFS_I(i)->u.s2.directory_index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1937 + SQUASHFS_I(i)->u.s2.directory_index_count, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1938 + file->f_pos); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1939 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1940 + while (length < i_size_read(i)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1941 + /* read directory header */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1942 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1943 + struct squashfs_dir_header sdirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1944 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1945 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1946 + next_block, next_offset, sizeof(sdirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1947 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1948 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1949 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1950 + length += sizeof(sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1951 + SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1952 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1953 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1954 + next_block, next_offset, sizeof(dirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1955 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1956 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1957 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1958 + length += sizeof(dirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1959 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1960 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1961 + dir_count = dirh.count + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1962 + while (dir_count--) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1963 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1964 + struct squashfs_dir_entry sdire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1965 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1966 + &sdire, next_block, next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1967 + sizeof(sdire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1968 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1969 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1970 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1971 + length += sizeof(sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1972 + SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1973 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1974 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1975 + dire, next_block, next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1976 + sizeof(*dire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1977 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1978 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1979 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1980 + length += sizeof(*dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1981 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1982 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1983 + if (!squashfs_get_cached_block(i->i_sb, dire->name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1984 + next_block, next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1985 + dire->size + 1, &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1986 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1987 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1988 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1989 + length += dire->size + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1990 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1991 + if (file->f_pos >= length) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1992 + continue; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1993 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1994 + dire->name[dire->size + 1] = '\0'; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1995 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1996 + TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1997 + (unsigned int) dirent, dire->name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1998 + dire->size + 1, (int) file->f_pos, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
1999 + dirh.start_block, dire->offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2000 + dirh.inode_number + dire->inode_number, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2001 + squashfs_filetype_table[dire->type]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2002 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2003 + if (filldir(dirent, dire->name, dire->size + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2004 + file->f_pos, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2005 + dirh.inode_number + dire->inode_number, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2006 + squashfs_filetype_table[dire->type]) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2007 + < 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2008 + TRACE("Filldir returned less than 0\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2009 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2010 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2011 + file->f_pos = length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2012 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2013 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2014 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2015 +finish: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2016 + kfree(dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2017 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2018 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2019 +failed_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2020 + ERROR("Unable to read directory block [%llx:%x]\n", next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2021 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2022 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2023 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2024 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2025 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2026 +static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2027 + struct nameidata *nd) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2028 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2029 + const unsigned char *name = dentry->d_name.name; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2030 + int len = dentry->d_name.len; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2031 + struct inode *inode = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2032 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2033 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2034 + long long next_block = SQUASHFS_I(i)->start_block + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2035 + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2036 + int next_offset = SQUASHFS_I(i)->offset, length = 0, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2037 + dir_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2038 + struct squashfs_dir_header dirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2039 + struct squashfs_dir_entry *dire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2040 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2041 + TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2042 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2043 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2044 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2045 + ERROR("Failed to allocate squashfs_dir_entry\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2046 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2047 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2048 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2049 + if (len > SQUASHFS_NAME_LEN) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2050 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2051 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2052 + length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2053 + SQUASHFS_I(i)->u.s2.directory_index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2054 + SQUASHFS_I(i)->u.s2.directory_index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2055 + SQUASHFS_I(i)->u.s2.directory_index_count, name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2056 + len); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2057 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2058 + while (length < i_size_read(i)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2059 + /* read directory header */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2060 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2061 + struct squashfs_dir_header sdirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2062 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2063 + next_block, next_offset, sizeof(sdirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2064 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2065 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2066 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2067 + length += sizeof(sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2068 + SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2069 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2070 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2071 + next_block, next_offset, sizeof(dirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2072 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2073 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2074 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2075 + length += sizeof(dirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2076 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2077 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2078 + dir_count = dirh.count + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2079 + while (dir_count--) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2080 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2081 + struct squashfs_dir_entry sdire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2082 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2083 + &sdire, next_block,next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2084 + sizeof(sdire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2085 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2086 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2087 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2088 + length += sizeof(sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2089 + SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2090 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2091 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2092 + dire, next_block,next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2093 + sizeof(*dire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2094 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2095 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2096 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2097 + length += sizeof(*dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2098 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2099 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2100 + if (!squashfs_get_cached_block(i->i_sb, dire->name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2101 + next_block, next_offset, dire->size + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2102 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2103 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2104 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2105 + length += dire->size + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2106 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2107 + if (name[0] < dire->name[0]) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2108 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2109 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2110 + if ((len == dire->size + 1) && !strncmp(name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2111 + dire->name, len)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2112 + squashfs_inode_t ino = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2113 + SQUASHFS_MKINODE(dirh.start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2114 + dire->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2115 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2116 + TRACE("calling squashfs_iget for directory " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2117 + "entry %s, inode %x:%x, %d\n", name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2118 + dirh.start_block, dire->offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2119 + dirh.inode_number + dire->inode_number); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2120 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2121 + inode = (msblk->iget)(i->i_sb, ino); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2122 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2123 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2124 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2125 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2126 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2127 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2128 +exit_loop: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2129 + kfree(dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2130 + d_add(dentry, inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2131 + return ERR_PTR(0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2132 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2133 +failed_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2134 + ERROR("Unable to read directory block [%llx:%x]\n", next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2135 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2136 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2137 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2138 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2139 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2140 +static void squashfs_put_super(struct super_block *s) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2141 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2142 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2143 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2144 + if (s->s_fs_info) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2145 + struct squashfs_sb_info *sbi = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2146 + if (sbi->block_cache) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2147 + for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2148 + if (sbi->block_cache[i].block != |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2149 + SQUASHFS_INVALID_BLK) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2150 + kfree(sbi->block_cache[i].data); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2151 + if (sbi->fragment) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2152 + for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2153 + SQUASHFS_FREE(sbi->fragment[i].data); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2154 + kfree(sbi->fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2155 + kfree(sbi->block_cache); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2156 + kfree(sbi->read_data); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2157 + kfree(sbi->read_page); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2158 + kfree(sbi->uid); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2159 + kfree(sbi->fragment_index); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2160 + kfree(sbi->fragment_index_2); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2161 + kfree(sbi->meta_index); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2162 + vfree(sbi->stream.workspace); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2163 + kfree(s->s_fs_info); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2164 + s->s_fs_info = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2165 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2166 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2167 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2168 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2169 +static int squashfs_get_sb(struct file_system_type *fs_type, int flags, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2170 + const char *dev_name, void *data, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2171 + struct vfsmount *mnt) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2172 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2173 + return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2174 + mnt); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2175 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2176 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2177 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2178 +static int __init init_squashfs_fs(void) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2179 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2180 + int err = init_inodecache(); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2181 + if (err) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2182 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2183 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2184 + printk(KERN_INFO "squashfs: version 3.1 (2006/08/19) " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2185 + "Phillip Lougher\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2186 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2187 + if ((err = register_filesystem(&squashfs_fs_type))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2188 + destroy_inodecache(); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2189 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2190 +out: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2191 + return err; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2192 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2193 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2194 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2195 +static void __exit exit_squashfs_fs(void) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2196 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2197 + unregister_filesystem(&squashfs_fs_type); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2198 + destroy_inodecache(); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2199 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2200 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2201 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2202 +static kmem_cache_t * squashfs_inode_cachep; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2203 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2204 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2205 +static struct inode *squashfs_alloc_inode(struct super_block *sb) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2206 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2207 + struct squashfs_inode_info *ei; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2208 + ei = kmem_cache_alloc(squashfs_inode_cachep, SLAB_KERNEL); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2209 + if (!ei) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2210 + return NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2211 + return &ei->vfs_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2212 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2213 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2214 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2215 +static void squashfs_destroy_inode(struct inode *inode) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2216 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2217 + kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2218 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2219 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2220 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2221 +static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2222 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2223 + struct squashfs_inode_info *ei = foo; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2224 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2225 + if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2226 + SLAB_CTOR_CONSTRUCTOR) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2227 + inode_init_once(&ei->vfs_inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2228 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2229 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2230 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2231 +static int __init init_inodecache(void) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2232 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2233 + squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2234 + sizeof(struct squashfs_inode_info), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2235 + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2236 + init_once, NULL); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2237 + if (squashfs_inode_cachep == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2238 + return -ENOMEM; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2239 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2240 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2241 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2242 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2243 +static void destroy_inodecache(void) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2244 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2245 + kmem_cache_destroy(squashfs_inode_cachep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2246 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2247 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2248 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2249 +module_init(init_squashfs_fs); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2250 +module_exit(exit_squashfs_fs); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2251 +MODULE_DESCRIPTION("squashfs 3.1, a compressed read-only filesystem"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2252 +MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2253 +MODULE_LICENSE("GPL"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2254 diff -Nru linux-2.6.19.ori2/fs/squashfs/squashfs.h linux-2.6.19.ori/fs/squashfs/squashfs.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2255 --- linux-2.6.19.ori2/fs/squashfs/squashfs.h 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2256 +++ linux-2.6.19.ori/fs/squashfs/squashfs.h 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2257 @@ -0,0 +1,86 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2258 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2259 + * Squashfs - a compressed read only filesystem for Linux |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2260 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2261 + * Copyright (c) 2002, 2003, 2004, 2005, 2006 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2262 + * Phillip Lougher <phillip@lougher.org.uk> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2263 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2264 + * This program is free software; you can redistribute it and/or |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2265 + * modify it under the terms of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2266 + * as published by the Free Software Foundation; either version 2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2267 + * or (at your option) any later version. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2268 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2269 + * This program is distributed in the hope that it will be useful, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2270 + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2271 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2272 + * GNU General Public License for more details. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2273 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2274 + * You should have received a copy of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2275 + * along with this program; if not, write to the Free Software |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2276 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2277 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2278 + * squashfs.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2279 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2280 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2281 +#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2282 +#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2283 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2284 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2285 +#ifdef SQUASHFS_TRACE |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2286 +#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2287 +#else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2288 +#define TRACE(s, args...) {} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2289 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2290 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2291 +#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2292 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2293 +#define SERROR(s, args...) do { \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2294 + if (!silent) \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2295 + printk(KERN_ERR "SQUASHFS error: "s, ## args);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2296 + } while(0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2297 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2298 +#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2299 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2300 +static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2301 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2302 + return list_entry(inode, struct squashfs_inode_info, vfs_inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2303 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2304 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2305 +#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2306 +#define SQSH_EXTERN |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2307 +extern unsigned int squashfs_read_data(struct super_block *s, char *buffer, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2308 + long long index, unsigned int length, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2309 + long long *next_index); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2310 +extern int squashfs_get_cached_block(struct super_block *s, char *buffer, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2311 + long long block, unsigned int offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2312 + int length, long long *next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2313 + unsigned int *next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2314 +extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2315 + squashfs_fragment_cache *fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2316 +extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2317 + *s, long long start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2318 + int length); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2319 +extern struct address_space_operations squashfs_symlink_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2320 +extern struct address_space_operations squashfs_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2321 +extern struct address_space_operations squashfs_aops_4K; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2322 +extern struct inode_operations squashfs_dir_inode_ops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2323 +#else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2324 +#define SQSH_EXTERN static |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2325 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2326 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2327 +#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2328 +extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2329 +#else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2330 +static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2331 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2332 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2333 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2334 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2335 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2336 +#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2337 +extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2338 +#else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2339 +static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2340 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2341 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2342 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2343 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2344 diff -Nru linux-2.6.19.ori2/fs/squashfs/squashfs2_0.c linux-2.6.19.ori/fs/squashfs/squashfs2_0.c |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2345 --- linux-2.6.19.ori2/fs/squashfs/squashfs2_0.c 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2346 +++ linux-2.6.19.ori/fs/squashfs/squashfs2_0.c 2006-12-03 00:13:45.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2347 @@ -0,0 +1,778 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2348 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2349 + * Squashfs - a compressed read only filesystem for Linux |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2350 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2351 + * Copyright (c) 2002, 2003, 2004, 2005, 2006 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2352 + * Phillip Lougher <phillip@lougher.org.uk> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2353 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2354 + * This program is free software; you can redistribute it and/or |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2355 + * modify it under the terms of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2356 + * as published by the Free Software Foundation; either version 2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2357 + * or (at your option) any later version. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2358 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2359 + * This program is distributed in the hope that it will be useful, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2360 + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2361 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2362 + * GNU General Public License for more details. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2363 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2364 + * You should have received a copy of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2365 + * along with this program; if not, write to the Free Software |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2366 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2367 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2368 + * squashfs2_0.c |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2369 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2370 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2371 +#include <linux/types.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2372 +#include <linux/squashfs_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2373 +#include <linux/module.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2374 +#include <linux/errno.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2375 +#include <linux/slab.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2376 +#include <linux/zlib.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2377 +#include <linux/fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2378 +#include <linux/smp_lock.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2379 +#include <linux/slab.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2380 +#include <linux/squashfs_fs_sb.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2381 +#include <linux/squashfs_fs_i.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2382 +#include <linux/buffer_head.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2383 +#include <linux/vfs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2384 +#include <linux/init.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2385 +#include <linux/dcache.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2386 +#include <linux/wait.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2387 +#include <linux/zlib.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2388 +#include <linux/blkdev.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2389 +#include <linux/vmalloc.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2390 +#include <asm/uaccess.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2391 +#include <asm/semaphore.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2392 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2393 +#include "squashfs.h" |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2394 +static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2395 +static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2396 + struct nameidata *); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2397 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2398 +static struct file_operations squashfs_dir_ops_2 = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2399 + .read = generic_read_dir, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2400 + .readdir = squashfs_readdir_2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2401 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2402 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2403 +static struct inode_operations squashfs_dir_inode_ops_2 = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2404 + .lookup = squashfs_lookup_2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2405 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2406 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2407 +static unsigned char squashfs_filetype_table[] = { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2408 + DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2409 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2410 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2411 +static int read_fragment_index_table_2(struct super_block *s) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2412 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2413 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2414 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2415 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2416 + if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2417 + (sblk->fragments), GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2418 + ERROR("Failed to allocate uid/gid table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2419 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2420 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2421 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2422 + if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2423 + !squashfs_read_data(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2424 + msblk->fragment_index_2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2425 + sblk->fragment_table_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2426 + SQUASHFS_FRAGMENT_INDEX_BYTES_2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2427 + (sblk->fragments) | |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2428 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2429 + ERROR("unable to read fragment index table\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2430 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2431 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2432 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2433 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2434 + int i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2435 + unsigned int fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2436 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2437 + for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2438 + i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2439 + SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2440 + &msblk->fragment_index_2[i], 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2441 + msblk->fragment_index_2[i] = fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2442 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2443 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2444 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2445 + return 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2446 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2447 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2448 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2449 +static int get_fragment_location_2(struct super_block *s, unsigned int fragment, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2450 + long long *fragment_start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2451 + unsigned int *fragment_size) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2452 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2453 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2454 + long long start_block = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2455 + msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2456 + int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2457 + struct squashfs_fragment_entry_2 fragment_entry; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2458 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2459 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2460 + struct squashfs_fragment_entry_2 sfragment_entry; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2461 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2462 + if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2463 + start_block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2464 + sizeof(sfragment_entry), &start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2465 + &offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2466 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2467 + SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2468 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2469 + if (!squashfs_get_cached_block(s, (char *) &fragment_entry, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2470 + start_block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2471 + sizeof(fragment_entry), &start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2472 + &offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2473 + goto out; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2474 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2475 + *fragment_start_block = fragment_entry.start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2476 + *fragment_size = fragment_entry.size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2477 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2478 + return 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2479 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2480 +out: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2481 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2482 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2483 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2484 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2485 +static struct inode *squashfs_new_inode(struct super_block *s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2486 + struct squashfs_base_inode_header_2 *inodeb, unsigned int ino) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2487 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2488 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2489 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2490 + struct inode *i = new_inode(s); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2491 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2492 + if (i) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2493 + i->i_ino = ino; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2494 + i->i_mtime.tv_sec = sblk->mkfs_time; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2495 + i->i_atime.tv_sec = sblk->mkfs_time; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2496 + i->i_ctime.tv_sec = sblk->mkfs_time; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2497 + i->i_uid = msblk->uid[inodeb->uid]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2498 + i->i_mode = inodeb->mode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2499 + i->i_nlink = 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2500 + i->i_size = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2501 + if (inodeb->guid == SQUASHFS_GUIDS) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2502 + i->i_gid = i->i_uid; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2503 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2504 + i->i_gid = msblk->guid[inodeb->guid]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2505 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2506 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2507 + return i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2508 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2509 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2510 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2511 +static struct inode *squashfs_iget_2(struct super_block *s, squashfs_inode_t inode) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2512 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2513 + struct inode *i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2514 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2515 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2516 + unsigned int block = SQUASHFS_INODE_BLK(inode) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2517 + sblk->inode_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2518 + unsigned int offset = SQUASHFS_INODE_OFFSET(inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2519 + unsigned int ino = SQUASHFS_MK_VFS_INODE(block |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2520 + - sblk->inode_table_start, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2521 + long long next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2522 + unsigned int next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2523 + union squashfs_inode_header_2 id, sid; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2524 + struct squashfs_base_inode_header_2 *inodeb = &id.base, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2525 + *sinodeb = &sid.base; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2526 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2527 + TRACE("Entered squashfs_iget\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2528 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2529 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2530 + if (!squashfs_get_cached_block(s, (char *) sinodeb, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2531 + offset, sizeof(*sinodeb), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2532 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2533 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2534 + SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2535 + sizeof(*sinodeb)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2536 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2537 + if (!squashfs_get_cached_block(s, (char *) inodeb, block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2538 + offset, sizeof(*inodeb), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2539 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2540 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2541 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2542 + switch(inodeb->inode_type) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2543 + case SQUASHFS_FILE_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2544 + struct squashfs_reg_inode_header_2 *inodep = &id.reg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2545 + struct squashfs_reg_inode_header_2 *sinodep = &sid.reg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2546 + long long frag_blk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2547 + unsigned int frag_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2548 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2549 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2550 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2551 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2552 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2553 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2554 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2555 + SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2556 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2557 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2558 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2559 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2560 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2561 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2562 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2563 + frag_blk = SQUASHFS_INVALID_BLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2564 + if (inodep->fragment != SQUASHFS_INVALID_FRAG && |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2565 + !get_fragment_location_2(s, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2566 + inodep->fragment, &frag_blk, &frag_size)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2567 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2568 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2569 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2570 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2571 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2572 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2573 + i->i_fop = &generic_ro_fops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2574 + i->i_mode |= S_IFREG; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2575 + i->i_mtime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2576 + i->i_atime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2577 + i->i_ctime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2578 + i->i_blocks = ((i->i_size - 1) >> 9) + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2579 + SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2580 + SQUASHFS_I(i)->u.s1.fragment_size = frag_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2581 + SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2582 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2583 + SQUASHFS_I(i)->u.s1.block_list_start = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2584 + SQUASHFS_I(i)->offset = next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2585 + if (sblk->block_size > 4096) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2586 + i->i_data.a_ops = &squashfs_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2587 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2588 + i->i_data.a_ops = &squashfs_aops_4K; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2589 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2590 + TRACE("File inode %x:%x, start_block %x, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2591 + "block_list_start %llx, offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2592 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2593 + inodep->start_block, next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2594 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2595 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2596 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2597 + case SQUASHFS_DIR_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2598 + struct squashfs_dir_inode_header_2 *inodep = &id.dir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2599 + struct squashfs_dir_inode_header_2 *sinodep = &sid.dir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2600 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2601 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2602 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2603 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2604 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2605 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2606 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2607 + SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2608 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2609 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2610 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2611 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2612 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2613 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2614 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2615 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2616 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2617 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2618 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2619 + i->i_op = &squashfs_dir_inode_ops_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2620 + i->i_fop = &squashfs_dir_ops_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2621 + i->i_mode |= S_IFDIR; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2622 + i->i_mtime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2623 + i->i_atime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2624 + i->i_ctime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2625 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2626 + SQUASHFS_I(i)->offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2627 + SQUASHFS_I(i)->u.s2.directory_index_count = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2628 + SQUASHFS_I(i)->u.s2.parent_inode = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2629 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2630 + TRACE("Directory inode %x:%x, start_block %x, offset " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2631 + "%x\n", SQUASHFS_INODE_BLK(inode), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2632 + offset, inodep->start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2633 + inodep->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2634 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2635 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2636 + case SQUASHFS_LDIR_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2637 + struct squashfs_ldir_inode_header_2 *inodep = &id.ldir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2638 + struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2639 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2640 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2641 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2642 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2643 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2644 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2645 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2646 + SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2647 + sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2648 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2649 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2650 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2651 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2652 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2653 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2654 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2655 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2656 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2657 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2658 + i->i_size = inodep->file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2659 + i->i_op = &squashfs_dir_inode_ops_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2660 + i->i_fop = &squashfs_dir_ops_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2661 + i->i_mode |= S_IFDIR; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2662 + i->i_mtime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2663 + i->i_atime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2664 + i->i_ctime.tv_sec = inodep->mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2665 + SQUASHFS_I(i)->start_block = inodep->start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2666 + SQUASHFS_I(i)->offset = inodep->offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2667 + SQUASHFS_I(i)->u.s2.directory_index_start = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2668 + SQUASHFS_I(i)->u.s2.directory_index_offset = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2669 + next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2670 + SQUASHFS_I(i)->u.s2.directory_index_count = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2671 + inodep->i_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2672 + SQUASHFS_I(i)->u.s2.parent_inode = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2673 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2674 + TRACE("Long directory inode %x:%x, start_block %x, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2675 + "offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2676 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2677 + inodep->start_block, inodep->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2678 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2679 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2680 + case SQUASHFS_SYMLINK_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2681 + struct squashfs_symlink_inode_header_2 *inodep = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2682 + &id.symlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2683 + struct squashfs_symlink_inode_header_2 *sinodep = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2684 + &sid.symlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2685 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2686 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2687 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2688 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2689 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2690 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2691 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2692 + SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2693 + sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2694 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2695 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2696 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2697 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2698 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2699 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2700 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2701 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2702 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2703 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2704 + i->i_size = inodep->symlink_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2705 + i->i_op = &page_symlink_inode_operations; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2706 + i->i_data.a_ops = &squashfs_symlink_aops; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2707 + i->i_mode |= S_IFLNK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2708 + SQUASHFS_I(i)->start_block = next_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2709 + SQUASHFS_I(i)->offset = next_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2710 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2711 + TRACE("Symbolic link inode %x:%x, start_block %llx, " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2712 + "offset %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2713 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2714 + next_block, next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2715 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2716 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2717 + case SQUASHFS_BLKDEV_TYPE: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2718 + case SQUASHFS_CHRDEV_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2719 + struct squashfs_dev_inode_header_2 *inodep = &id.dev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2720 + struct squashfs_dev_inode_header_2 *sinodep = &sid.dev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2721 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2722 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2723 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2724 + sinodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2725 + sizeof(*sinodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2726 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2727 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2728 + SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2729 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2730 + if (!squashfs_get_cached_block(s, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2731 + inodep, block, offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2732 + sizeof(*inodep), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2733 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2734 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2735 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2736 + if ((i = squashfs_new_inode(s, inodeb, ino)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2737 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2738 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2739 + i->i_mode |= (inodeb->inode_type == |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2740 + SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2741 + S_IFBLK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2742 + init_special_inode(i, i->i_mode, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2743 + old_decode_dev(inodep->rdev)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2744 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2745 + TRACE("Device inode %x:%x, rdev %x\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2746 + SQUASHFS_INODE_BLK(inode), offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2747 + inodep->rdev); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2748 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2749 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2750 + case SQUASHFS_FIFO_TYPE: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2751 + case SQUASHFS_SOCKET_TYPE: { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2752 + if ((i = squashfs_new_inode(s, inodeb, ino)) == NULL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2753 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2754 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2755 + i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2756 + ? S_IFIFO : S_IFSOCK; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2757 + init_special_inode(i, i->i_mode, 0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2758 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2759 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2760 + default: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2761 + ERROR("Unknown inode type %d in squashfs_iget!\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2762 + inodeb->inode_type); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2763 + goto failed_read1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2764 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2765 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2766 + insert_inode_hash(i); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2767 + return i; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2768 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2769 +failed_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2770 + ERROR("Unable to read inode [%x:%x]\n", block, offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2771 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2772 +failed_read1: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2773 + return NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2774 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2775 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2776 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2777 +static int get_dir_index_using_offset(struct super_block *s, long long |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2778 + *next_block, unsigned int *next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2779 + long long index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2780 + unsigned int index_offset, int i_count, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2781 + long long f_pos) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2782 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2783 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2784 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2785 + int i, length = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2786 + struct squashfs_dir_index_2 index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2787 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2788 + TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2789 + i_count, (unsigned int) f_pos); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2790 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2791 + if (f_pos == 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2792 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2793 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2794 + for (i = 0; i < i_count; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2795 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2796 + struct squashfs_dir_index_2 sindex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2797 + squashfs_get_cached_block(s, (char *) &sindex, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2798 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2799 + sizeof(sindex), &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2800 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2801 + SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2802 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2803 + squashfs_get_cached_block(s, (char *) &index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2804 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2805 + sizeof(index), &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2806 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2807 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2808 + if (index.index > f_pos) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2809 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2810 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2811 + squashfs_get_cached_block(s, NULL, index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2812 + index.size + 1, &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2813 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2814 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2815 + length = index.index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2816 + *next_block = index.start_block + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2817 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2818 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2819 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2820 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2821 +finish: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2822 + return length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2823 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2824 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2825 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2826 +static int get_dir_index_using_name(struct super_block *s, long long |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2827 + *next_block, unsigned int *next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2828 + long long index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2829 + unsigned int index_offset, int i_count, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2830 + const char *name, int size) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2831 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2832 + struct squashfs_sb_info *msblk = s->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2833 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2834 + int i, length = 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2835 + struct squashfs_dir_index_2 *index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2836 + char *str; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2837 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2838 + TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2839 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2840 + if (!(str = kmalloc(sizeof(struct squashfs_dir_index) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2841 + (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2842 + ERROR("Failed to allocate squashfs_dir_index\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2843 + goto failure; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2844 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2845 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2846 + index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2847 + strncpy(str, name, size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2848 + str[size] = '\0'; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2849 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2850 + for (i = 0; i < i_count; i++) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2851 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2852 + struct squashfs_dir_index_2 sindex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2853 + squashfs_get_cached_block(s, (char *) &sindex, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2854 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2855 + sizeof(sindex), &index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2856 + &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2857 + SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2858 + } else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2859 + squashfs_get_cached_block(s, (char *) index, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2860 + index_start, index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2861 + sizeof(struct squashfs_dir_index_2), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2862 + &index_start, &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2863 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2864 + squashfs_get_cached_block(s, index->name, index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2865 + index_offset, index->size + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2866 + &index_start, &index_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2867 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2868 + index->name[index->size + 1] = '\0'; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2869 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2870 + if (strcmp(index->name, str) > 0) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2871 + break; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2872 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2873 + length = index->index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2874 + *next_block = index->start_block + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2875 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2876 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2877 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2878 + kfree(str); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2879 +failure: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2880 + return length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2881 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2882 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2883 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2884 +static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2885 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2886 + struct inode *i = file->f_dentry->d_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2887 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2888 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2889 + long long next_block = SQUASHFS_I(i)->start_block + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2890 + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2891 + int next_offset = SQUASHFS_I(i)->offset, length = 0, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2892 + dir_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2893 + struct squashfs_dir_header_2 dirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2894 + struct squashfs_dir_entry_2 *dire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2895 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2896 + TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2897 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2898 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2899 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2900 + ERROR("Failed to allocate squashfs_dir_entry\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2901 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2902 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2903 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2904 + length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2905 + SQUASHFS_I(i)->u.s2.directory_index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2906 + SQUASHFS_I(i)->u.s2.directory_index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2907 + SQUASHFS_I(i)->u.s2.directory_index_count, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2908 + file->f_pos); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2909 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2910 + while (length < i_size_read(i)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2911 + /* read directory header */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2912 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2913 + struct squashfs_dir_header_2 sdirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2914 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2915 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2916 + next_block, next_offset, sizeof(sdirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2917 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2918 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2919 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2920 + length += sizeof(sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2921 + SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2922 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2923 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2924 + next_block, next_offset, sizeof(dirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2925 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2926 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2927 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2928 + length += sizeof(dirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2929 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2930 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2931 + dir_count = dirh.count + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2932 + while (dir_count--) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2933 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2934 + struct squashfs_dir_entry_2 sdire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2935 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2936 + &sdire, next_block, next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2937 + sizeof(sdire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2938 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2939 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2940 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2941 + length += sizeof(sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2942 + SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2943 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2944 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2945 + dire, next_block, next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2946 + sizeof(*dire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2947 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2948 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2949 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2950 + length += sizeof(*dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2951 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2952 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2953 + if (!squashfs_get_cached_block(i->i_sb, dire->name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2954 + next_block, next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2955 + dire->size + 1, &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2956 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2957 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2958 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2959 + length += dire->size + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2960 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2961 + if (file->f_pos >= length) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2962 + continue; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2963 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2964 + dire->name[dire->size + 1] = '\0'; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2965 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2966 + TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2967 + (unsigned int) dirent, dire->name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2968 + dire->size + 1, (int) file->f_pos, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2969 + dirh.start_block, dire->offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2970 + squashfs_filetype_table[dire->type]); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2971 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2972 + if (filldir(dirent, dire->name, dire->size + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2973 + file->f_pos, SQUASHFS_MK_VFS_INODE( |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2974 + dirh.start_block, dire->offset), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2975 + squashfs_filetype_table[dire->type]) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2976 + < 0) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2977 + TRACE("Filldir returned less than 0\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2978 + goto finish; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2979 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2980 + file->f_pos = length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2981 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2982 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2983 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2984 +finish: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2985 + kfree(dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2986 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2987 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2988 +failed_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2989 + ERROR("Unable to read directory block [%llx:%x]\n", next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2990 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2991 + kfree(dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2992 + return 0; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2993 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2994 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2995 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2996 +static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2997 + struct nameidata *nd) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2998 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2999 + const unsigned char *name = dentry->d_name.name; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3000 + int len = dentry->d_name.len; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3001 + struct inode *inode = NULL; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3002 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3003 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3004 + long long next_block = SQUASHFS_I(i)->start_block + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3005 + sblk->directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3006 + int next_offset = SQUASHFS_I(i)->offset, length = 0, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3007 + dir_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3008 + struct squashfs_dir_header_2 dirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3009 + struct squashfs_dir_entry_2 *dire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3010 + int sorted = sblk->s_major == 2 && sblk->s_minor >= 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3011 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3012 + TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3013 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3014 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3015 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3016 + ERROR("Failed to allocate squashfs_dir_entry\n"); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3017 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3018 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3019 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3020 + if (len > SQUASHFS_NAME_LEN) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3021 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3022 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3023 + length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3024 + SQUASHFS_I(i)->u.s2.directory_index_start, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3025 + SQUASHFS_I(i)->u.s2.directory_index_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3026 + SQUASHFS_I(i)->u.s2.directory_index_count, name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3027 + len); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3028 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3029 + while (length < i_size_read(i)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3030 + /* read directory header */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3031 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3032 + struct squashfs_dir_header_2 sdirh; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3033 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3034 + next_block, next_offset, sizeof(sdirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3035 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3036 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3037 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3038 + length += sizeof(sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3039 + SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3040 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3041 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3042 + next_block, next_offset, sizeof(dirh), |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3043 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3044 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3045 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3046 + length += sizeof(dirh); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3047 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3048 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3049 + dir_count = dirh.count + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3050 + while (dir_count--) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3051 + if (msblk->swap) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3052 + struct squashfs_dir_entry_2 sdire; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3053 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3054 + &sdire, next_block,next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3055 + sizeof(sdire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3056 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3057 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3058 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3059 + length += sizeof(sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3060 + SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3061 + } else { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3062 + if (!squashfs_get_cached_block(i->i_sb, (char *) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3063 + dire, next_block,next_offset, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3064 + sizeof(*dire), &next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3065 + &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3066 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3067 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3068 + length += sizeof(*dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3069 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3070 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3071 + if (!squashfs_get_cached_block(i->i_sb, dire->name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3072 + next_block, next_offset, dire->size + 1, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3073 + &next_block, &next_offset)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3074 + goto failed_read; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3075 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3076 + length += dire->size + 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3077 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3078 + if (sorted && name[0] < dire->name[0]) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3079 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3080 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3081 + if ((len == dire->size + 1) && !strncmp(name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3082 + dire->name, len)) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3083 + squashfs_inode_t ino = |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3084 + SQUASHFS_MKINODE(dirh.start_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3085 + dire->offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3086 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3087 + TRACE("calling squashfs_iget for directory " |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3088 + "entry %s, inode %x:%x, %lld\n", name, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3089 + dirh.start_block, dire->offset, ino); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3090 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3091 + inode = (msblk->iget)(i->i_sb, ino); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3092 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3093 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3094 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3095 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3096 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3097 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3098 +exit_loop: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3099 + kfree(dire); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3100 + d_add(dentry, inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3101 + return ERR_PTR(0); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3102 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3103 +failed_read: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3104 + ERROR("Unable to read directory block [%llx:%x]\n", next_block, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3105 + next_offset); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3106 + goto exit_loop; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3107 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3108 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3109 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3110 +int squashfs_2_0_supported(struct squashfs_sb_info *msblk) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3111 +{ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3112 + struct squashfs_super_block *sblk = &msblk->sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3113 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3114 + msblk->iget = squashfs_iget_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3115 + msblk->read_fragment_index_table = read_fragment_index_table_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3116 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3117 + sblk->bytes_used = sblk->bytes_used_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3118 + sblk->uid_start = sblk->uid_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3119 + sblk->guid_start = sblk->guid_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3120 + sblk->inode_table_start = sblk->inode_table_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3121 + sblk->directory_table_start = sblk->directory_table_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3122 + sblk->fragment_table_start = sblk->fragment_table_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3123 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3124 + return 1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3125 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3126 diff -Nru linux-2.6.19.ori2/include/linux/squashfs_fs.h linux-2.6.19.ori/include/linux/squashfs_fs.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3127 --- linux-2.6.19.ori2/include/linux/squashfs_fs.h 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3128 +++ linux-2.6.19.ori/include/linux/squashfs_fs.h 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3129 @@ -0,0 +1,911 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3130 +#ifndef SQUASHFS_FS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3131 +#define SQUASHFS_FS |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3132 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3133 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3134 + * Squashfs |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3135 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3136 + * Copyright (c) 2002, 2003, 2004, 2005, 2006 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3137 + * Phillip Lougher <phillip@lougher.org.uk> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3138 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3139 + * This program is free software; you can redistribute it and/or |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3140 + * modify it under the terms of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3141 + * as published by the Free Software Foundation; either version 2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3142 + * or (at your option) any later version. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3143 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3144 + * This program is distributed in the hope that it will be useful, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3145 + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3146 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3147 + * GNU General Public License for more details. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3148 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3149 + * You should have received a copy of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3150 + * along with this program; if not, write to the Free Software |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3151 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3152 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3153 + * squashfs_fs.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3154 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3155 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3156 +#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3157 +#define CONFIG_SQUASHFS_2_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3158 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3159 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3160 +#ifdef CONFIG_SQUASHFS_VMALLOC |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3161 +#define SQUASHFS_ALLOC(a) vmalloc(a) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3162 +#define SQUASHFS_FREE(a) vfree(a) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3163 +#else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3164 +#define SQUASHFS_ALLOC(a) kmalloc(a, GFP_KERNEL) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3165 +#define SQUASHFS_FREE(a) kfree(a) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3166 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3167 +#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3168 +#define SQUASHFS_MAJOR 3 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3169 +#define SQUASHFS_MINOR 0 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3170 +#define SQUASHFS_MAGIC 0x73717368 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3171 +#define SQUASHFS_MAGIC_SWAP 0x68737173 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3172 +#define SQUASHFS_START 0 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3173 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3174 +/* size of metadata (inode and directory) blocks */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3175 +#define SQUASHFS_METADATA_SIZE 8192 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3176 +#define SQUASHFS_METADATA_LOG 13 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3177 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3178 +/* default size of data blocks */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3179 +#define SQUASHFS_FILE_SIZE 65536 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3180 +#define SQUASHFS_FILE_LOG 16 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3181 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3182 +#define SQUASHFS_FILE_MAX_SIZE 65536 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3183 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3184 +/* Max number of uids and gids */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3185 +#define SQUASHFS_UIDS 256 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3186 +#define SQUASHFS_GUIDS 255 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3187 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3188 +/* Max length of filename (not 255) */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3189 +#define SQUASHFS_NAME_LEN 256 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3190 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3191 +#define SQUASHFS_INVALID ((long long) 0xffffffffffff) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3192 +#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3193 +#define SQUASHFS_INVALID_BLK ((long long) -1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3194 +#define SQUASHFS_USED_BLK ((long long) -2) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3195 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3196 +/* Filesystem flags */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3197 +#define SQUASHFS_NOI 0 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3198 +#define SQUASHFS_NOD 1 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3199 +#define SQUASHFS_CHECK 2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3200 +#define SQUASHFS_NOF 3 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3201 +#define SQUASHFS_NO_FRAG 4 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3202 +#define SQUASHFS_ALWAYS_FRAG 5 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3203 +#define SQUASHFS_DUPLICATE 6 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3204 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3205 +#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3206 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3207 +#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3208 + SQUASHFS_NOI) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3209 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3210 +#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3211 + SQUASHFS_NOD) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3212 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3213 +#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3214 + SQUASHFS_NOF) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3215 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3216 +#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3217 + SQUASHFS_NO_FRAG) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3218 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3219 +#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3220 + SQUASHFS_ALWAYS_FRAG) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3221 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3222 +#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3223 + SQUASHFS_DUPLICATE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3224 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3225 +#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3226 + SQUASHFS_CHECK) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3227 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3228 +#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3229 + duplicate_checking) (noi | (nod << 1) | (check_data << 2) \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3230 + | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3231 + (duplicate_checking << 6)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3232 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3233 +/* Max number of types and file types */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3234 +#define SQUASHFS_DIR_TYPE 1 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3235 +#define SQUASHFS_FILE_TYPE 2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3236 +#define SQUASHFS_SYMLINK_TYPE 3 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3237 +#define SQUASHFS_BLKDEV_TYPE 4 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3238 +#define SQUASHFS_CHRDEV_TYPE 5 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3239 +#define SQUASHFS_FIFO_TYPE 6 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3240 +#define SQUASHFS_SOCKET_TYPE 7 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3241 +#define SQUASHFS_LDIR_TYPE 8 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3242 +#define SQUASHFS_LREG_TYPE 9 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3243 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3244 +/* 1.0 filesystem type definitions */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3245 +#define SQUASHFS_TYPES 5 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3246 +#define SQUASHFS_IPC_TYPE 0 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3247 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3248 +/* Flag whether block is compressed or uncompressed, bit is set if block is |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3249 + * uncompressed */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3250 +#define SQUASHFS_COMPRESSED_BIT (1 << 15) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3251 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3252 +#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3253 + (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3254 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3255 +#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3256 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3257 +#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3258 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3259 +#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) (((B) & \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3260 + ~SQUASHFS_COMPRESSED_BIT_BLOCK) ? (B) & \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3261 + ~SQUASHFS_COMPRESSED_BIT_BLOCK : SQUASHFS_COMPRESSED_BIT_BLOCK) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3262 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3263 +#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3264 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3265 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3266 + * Inode number ops. Inodes consist of a compressed block number, and an |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3267 + * uncompressed offset within that block |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3268 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3269 +#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3270 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3271 +#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3272 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3273 +#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3274 + << 16) + (B))) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3275 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3276 +/* Compute 32 bit VFS inode number from squashfs inode number */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3277 +#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3278 + ((b) >> 2) + 1)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3279 +/* XXX */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3280 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3281 +/* Translate between VFS mode and squashfs mode */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3282 +#define SQUASHFS_MODE(a) ((a) & 0xfff) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3283 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3284 +/* fragment and fragment table defines */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3285 +#define SQUASHFS_FRAGMENT_BYTES(A) (A * sizeof(struct squashfs_fragment_entry)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3286 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3287 +#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3288 + SQUASHFS_METADATA_SIZE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3289 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3290 +#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3291 + SQUASHFS_METADATA_SIZE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3292 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3293 +#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3294 + SQUASHFS_METADATA_SIZE - 1) / \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3295 + SQUASHFS_METADATA_SIZE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3296 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3297 +#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3298 + sizeof(long long)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3299 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3300 +/* cached data constants for filesystem */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3301 +#define SQUASHFS_CACHED_BLKS 8 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3302 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3303 +#define SQUASHFS_MAX_FILE_SIZE_LOG 64 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3304 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3305 +#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3306 + (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3307 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3308 +#define SQUASHFS_MARKER_BYTE 0xff |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3309 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3310 +/* meta index cache */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3311 +#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3312 +#define SQUASHFS_META_ENTRIES 31 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3313 +#define SQUASHFS_META_NUMBER 8 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3314 +#define SQUASHFS_SLOTS 4 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3315 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3316 +struct meta_entry { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3317 + long long data_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3318 + unsigned int index_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3319 + unsigned short offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3320 + unsigned short pad; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3321 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3322 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3323 +struct meta_index { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3324 + unsigned int inode_number; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3325 + unsigned int offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3326 + unsigned short entries; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3327 + unsigned short skip; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3328 + unsigned short locked; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3329 + unsigned short pad; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3330 + struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3331 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3332 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3333 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3334 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3335 + * definitions for structures on disk |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3336 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3337 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3338 +typedef long long squashfs_block_t; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3339 +typedef long long squashfs_inode_t; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3340 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3341 +struct squashfs_super_block { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3342 + unsigned int s_magic; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3343 + unsigned int inodes; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3344 + unsigned int bytes_used_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3345 + unsigned int uid_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3346 + unsigned int guid_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3347 + unsigned int inode_table_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3348 + unsigned int directory_table_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3349 + unsigned int s_major:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3350 + unsigned int s_minor:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3351 + unsigned int block_size_1:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3352 + unsigned int block_log:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3353 + unsigned int flags:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3354 + unsigned int no_uids:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3355 + unsigned int no_guids:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3356 + unsigned int mkfs_time /* time of filesystem creation */; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3357 + squashfs_inode_t root_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3358 + unsigned int block_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3359 + unsigned int fragments; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3360 + unsigned int fragment_table_start_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3361 + long long bytes_used; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3362 + long long uid_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3363 + long long guid_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3364 + long long inode_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3365 + long long directory_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3366 + long long fragment_table_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3367 + long long unused; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3368 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3369 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3370 +struct squashfs_dir_index { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3371 + unsigned int index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3372 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3373 + unsigned char size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3374 + unsigned char name[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3375 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3376 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3377 +#define SQUASHFS_BASE_INODE_HEADER \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3378 + unsigned int inode_type:4; \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3379 + unsigned int mode:12; \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3380 + unsigned int uid:8; \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3381 + unsigned int guid:8; \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3382 + unsigned int mtime; \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3383 + unsigned int inode_number; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3384 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3385 +struct squashfs_base_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3386 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3387 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3388 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3389 +struct squashfs_ipc_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3390 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3391 + unsigned int nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3392 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3393 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3394 +struct squashfs_dev_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3395 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3396 + unsigned int nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3397 + unsigned short rdev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3398 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3399 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3400 +struct squashfs_symlink_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3401 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3402 + unsigned int nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3403 + unsigned short symlink_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3404 + char symlink[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3405 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3406 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3407 +struct squashfs_reg_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3408 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3409 + squashfs_block_t start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3410 + unsigned int fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3411 + unsigned int offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3412 + unsigned int file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3413 + unsigned short block_list[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3414 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3415 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3416 +struct squashfs_lreg_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3417 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3418 + unsigned int nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3419 + squashfs_block_t start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3420 + unsigned int fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3421 + unsigned int offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3422 + long long file_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3423 + unsigned short block_list[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3424 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3425 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3426 +struct squashfs_dir_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3427 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3428 + unsigned int nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3429 + unsigned int file_size:19; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3430 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3431 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3432 + unsigned int parent_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3433 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3434 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3435 +struct squashfs_ldir_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3436 + SQUASHFS_BASE_INODE_HEADER; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3437 + unsigned int nlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3438 + unsigned int file_size:27; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3439 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3440 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3441 + unsigned int i_count:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3442 + unsigned int parent_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3443 + struct squashfs_dir_index index[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3444 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3445 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3446 +union squashfs_inode_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3447 + struct squashfs_base_inode_header base; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3448 + struct squashfs_dev_inode_header dev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3449 + struct squashfs_symlink_inode_header symlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3450 + struct squashfs_reg_inode_header reg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3451 + struct squashfs_lreg_inode_header lreg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3452 + struct squashfs_dir_inode_header dir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3453 + struct squashfs_ldir_inode_header ldir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3454 + struct squashfs_ipc_inode_header ipc; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3455 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3456 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3457 +struct squashfs_dir_entry { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3458 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3459 + unsigned int type:3; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3460 + unsigned int size:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3461 + int inode_number:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3462 + char name[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3463 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3464 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3465 +struct squashfs_dir_header { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3466 + unsigned int count:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3467 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3468 + unsigned int inode_number; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3469 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3470 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3471 +struct squashfs_fragment_entry { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3472 + long long start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3473 + unsigned int size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3474 + unsigned int unused; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3475 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3476 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3477 +extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3478 +extern int squashfs_uncompress_init(void); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3479 +extern int squashfs_uncompress_exit(void); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3480 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3481 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3482 + * macros to convert each packed bitfield structure from little endian to big |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3483 + * endian and vice versa. These are needed when creating or using a filesystem |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3484 + * on a machine with different byte ordering to the target architecture. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3485 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3486 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3487 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3488 +#define SQUASHFS_SWAP_START \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3489 + int bits;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3490 + int b_pos;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3491 + unsigned long long val;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3492 + unsigned char *s;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3493 + unsigned char *d; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3494 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3495 +#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3496 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3497 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3498 + SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3499 + SQUASHFS_SWAP((s)->inodes, d, 32, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3500 + SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3501 + SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3502 + SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3503 + SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3504 + SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3505 + SQUASHFS_SWAP((s)->s_major, d, 224, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3506 + SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3507 + SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3508 + SQUASHFS_SWAP((s)->block_log, d, 272, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3509 + SQUASHFS_SWAP((s)->flags, d, 288, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3510 + SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3511 + SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3512 + SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3513 + SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3514 + SQUASHFS_SWAP((s)->block_size, d, 408, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3515 + SQUASHFS_SWAP((s)->fragments, d, 440, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3516 + SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3517 + SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3518 + SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3519 + SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3520 + SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3521 + SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3522 + SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3523 + SQUASHFS_SWAP((s)->unused, d, 888, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3524 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3525 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3526 +#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3527 + SQUASHFS_MEMSET(s, d, n);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3528 + SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3529 + SQUASHFS_SWAP((s)->mode, d, 4, 12);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3530 + SQUASHFS_SWAP((s)->uid, d, 16, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3531 + SQUASHFS_SWAP((s)->guid, d, 24, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3532 + SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3533 + SQUASHFS_SWAP((s)->inode_number, d, 64, 32); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3534 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3535 +#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3536 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3537 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3538 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3539 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3540 +#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3541 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3542 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3543 + sizeof(struct squashfs_ipc_inode_header))\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3544 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3545 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3546 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3547 +#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3548 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3549 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3550 + sizeof(struct squashfs_dev_inode_header)); \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3551 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3552 + SQUASHFS_SWAP((s)->rdev, d, 128, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3553 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3554 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3555 +#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3556 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3557 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3558 + sizeof(struct squashfs_symlink_inode_header));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3559 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3560 + SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3561 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3562 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3563 +#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3564 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3565 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3566 + sizeof(struct squashfs_reg_inode_header));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3567 + SQUASHFS_SWAP((s)->start_block, d, 96, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3568 + SQUASHFS_SWAP((s)->fragment, d, 160, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3569 + SQUASHFS_SWAP((s)->offset, d, 192, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3570 + SQUASHFS_SWAP((s)->file_size, d, 224, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3571 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3572 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3573 +#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3574 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3575 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3576 + sizeof(struct squashfs_lreg_inode_header));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3577 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3578 + SQUASHFS_SWAP((s)->start_block, d, 128, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3579 + SQUASHFS_SWAP((s)->fragment, d, 192, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3580 + SQUASHFS_SWAP((s)->offset, d, 224, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3581 + SQUASHFS_SWAP((s)->file_size, d, 256, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3582 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3583 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3584 +#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3585 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3586 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3587 + sizeof(struct squashfs_dir_inode_header));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3588 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3589 + SQUASHFS_SWAP((s)->file_size, d, 128, 19);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3590 + SQUASHFS_SWAP((s)->offset, d, 147, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3591 + SQUASHFS_SWAP((s)->start_block, d, 160, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3592 + SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3593 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3594 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3595 +#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3596 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3597 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3598 + sizeof(struct squashfs_ldir_inode_header));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3599 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3600 + SQUASHFS_SWAP((s)->file_size, d, 128, 27);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3601 + SQUASHFS_SWAP((s)->offset, d, 155, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3602 + SQUASHFS_SWAP((s)->start_block, d, 168, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3603 + SQUASHFS_SWAP((s)->i_count, d, 200, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3604 + SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3605 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3606 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3607 +#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3608 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3609 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3610 + SQUASHFS_SWAP((s)->index, d, 0, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3611 + SQUASHFS_SWAP((s)->start_block, d, 32, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3612 + SQUASHFS_SWAP((s)->size, d, 64, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3613 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3614 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3615 +#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3616 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3617 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3618 + SQUASHFS_SWAP((s)->count, d, 0, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3619 + SQUASHFS_SWAP((s)->start_block, d, 8, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3620 + SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3621 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3622 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3623 +#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3624 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3625 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3626 + SQUASHFS_SWAP((s)->offset, d, 0, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3627 + SQUASHFS_SWAP((s)->type, d, 13, 3);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3628 + SQUASHFS_SWAP((s)->size, d, 16, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3629 + SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3630 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3631 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3632 +#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3633 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3634 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3635 + SQUASHFS_SWAP((s)->start_block, d, 0, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3636 + SQUASHFS_SWAP((s)->size, d, 64, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3637 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3638 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3639 +#define SQUASHFS_SWAP_SHORTS(s, d, n) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3640 + int entry;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3641 + int bit_position;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3642 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3643 + SQUASHFS_MEMSET(s, d, n * 2);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3644 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3645 + 16)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3646 + SQUASHFS_SWAP(s[entry], d, bit_position, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3647 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3648 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3649 +#define SQUASHFS_SWAP_INTS(s, d, n) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3650 + int entry;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3651 + int bit_position;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3652 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3653 + SQUASHFS_MEMSET(s, d, n * 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3654 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3655 + 32)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3656 + SQUASHFS_SWAP(s[entry], d, bit_position, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3657 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3658 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3659 +#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3660 + int entry;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3661 + int bit_position;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3662 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3663 + SQUASHFS_MEMSET(s, d, n * 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3664 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3665 + 64)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3666 + SQUASHFS_SWAP(s[entry], d, bit_position, 64);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3667 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3668 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3669 +#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3670 + int entry;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3671 + int bit_position;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3672 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3673 + SQUASHFS_MEMSET(s, d, n * bits / 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3674 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3675 + bits)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3676 + SQUASHFS_SWAP(s[entry], d, bit_position, bits);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3677 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3678 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3679 +#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3680 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3681 +#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3682 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3683 +struct squashfs_base_inode_header_1 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3684 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3685 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3686 + unsigned int uid:4; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3687 + unsigned int guid:4; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3688 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3689 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3690 +struct squashfs_ipc_inode_header_1 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3691 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3692 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3693 + unsigned int uid:4; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3694 + unsigned int guid:4; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3695 + unsigned int type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3696 + unsigned int offset:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3697 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3698 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3699 +struct squashfs_dev_inode_header_1 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3700 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3701 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3702 + unsigned int uid:4; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3703 + unsigned int guid:4; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3704 + unsigned short rdev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3705 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3706 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3707 +struct squashfs_symlink_inode_header_1 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3708 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3709 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3710 + unsigned int uid:4; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3711 + unsigned int guid:4; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3712 + unsigned short symlink_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3713 + char symlink[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3714 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3715 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3716 +struct squashfs_reg_inode_header_1 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3717 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3718 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3719 + unsigned int uid:4; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3720 + unsigned int guid:4; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3721 + unsigned int mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3722 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3723 + unsigned int file_size:32; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3724 + unsigned short block_list[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3725 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3726 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3727 +struct squashfs_dir_inode_header_1 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3728 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3729 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3730 + unsigned int uid:4; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3731 + unsigned int guid:4; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3732 + unsigned int file_size:19; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3733 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3734 + unsigned int mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3735 + unsigned int start_block:24; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3736 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3737 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3738 +#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3739 + SQUASHFS_MEMSET(s, d, n);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3740 + SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3741 + SQUASHFS_SWAP((s)->mode, d, 4, 12);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3742 + SQUASHFS_SWAP((s)->uid, d, 16, 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3743 + SQUASHFS_SWAP((s)->guid, d, 20, 4); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3744 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3745 +#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3746 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3747 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3748 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3749 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3750 +#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3751 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3752 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3753 + sizeof(struct squashfs_ipc_inode_header_1));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3754 + SQUASHFS_SWAP((s)->type, d, 24, 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3755 + SQUASHFS_SWAP((s)->offset, d, 28, 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3756 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3757 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3758 +#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3759 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3760 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3761 + sizeof(struct squashfs_dev_inode_header_1));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3762 + SQUASHFS_SWAP((s)->rdev, d, 24, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3763 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3764 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3765 +#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3766 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3767 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3768 + sizeof(struct squashfs_symlink_inode_header_1));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3769 + SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3770 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3771 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3772 +#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3773 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3774 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3775 + sizeof(struct squashfs_reg_inode_header_1));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3776 + SQUASHFS_SWAP((s)->mtime, d, 24, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3777 + SQUASHFS_SWAP((s)->start_block, d, 56, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3778 + SQUASHFS_SWAP((s)->file_size, d, 88, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3779 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3780 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3781 +#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3782 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3783 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3784 + sizeof(struct squashfs_dir_inode_header_1));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3785 + SQUASHFS_SWAP((s)->file_size, d, 24, 19);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3786 + SQUASHFS_SWAP((s)->offset, d, 43, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3787 + SQUASHFS_SWAP((s)->mtime, d, 56, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3788 + SQUASHFS_SWAP((s)->start_block, d, 88, 24);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3789 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3790 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3791 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3792 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3793 +#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3794 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3795 +struct squashfs_dir_index_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3796 + unsigned int index:27; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3797 + unsigned int start_block:29; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3798 + unsigned char size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3799 + unsigned char name[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3800 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3801 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3802 +struct squashfs_base_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3803 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3804 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3805 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3806 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3807 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3808 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3809 +struct squashfs_ipc_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3810 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3811 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3812 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3813 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3814 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3815 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3816 +struct squashfs_dev_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3817 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3818 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3819 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3820 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3821 + unsigned short rdev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3822 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3823 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3824 +struct squashfs_symlink_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3825 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3826 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3827 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3828 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3829 + unsigned short symlink_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3830 + char symlink[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3831 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3832 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3833 +struct squashfs_reg_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3834 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3835 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3836 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3837 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3838 + unsigned int mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3839 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3840 + unsigned int fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3841 + unsigned int offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3842 + unsigned int file_size:32; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3843 + unsigned short block_list[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3844 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3845 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3846 +struct squashfs_dir_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3847 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3848 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3849 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3850 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3851 + unsigned int file_size:19; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3852 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3853 + unsigned int mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3854 + unsigned int start_block:24; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3855 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3856 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3857 +struct squashfs_ldir_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3858 + unsigned int inode_type:4; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3859 + unsigned int mode:12; /* protection */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3860 + unsigned int uid:8; /* index into uid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3861 + unsigned int guid:8; /* index into guid table */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3862 + unsigned int file_size:27; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3863 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3864 + unsigned int mtime; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3865 + unsigned int start_block:24; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3866 + unsigned int i_count:16; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3867 + struct squashfs_dir_index_2 index[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3868 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3869 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3870 +union squashfs_inode_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3871 + struct squashfs_base_inode_header_2 base; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3872 + struct squashfs_dev_inode_header_2 dev; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3873 + struct squashfs_symlink_inode_header_2 symlink; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3874 + struct squashfs_reg_inode_header_2 reg; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3875 + struct squashfs_dir_inode_header_2 dir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3876 + struct squashfs_ldir_inode_header_2 ldir; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3877 + struct squashfs_ipc_inode_header_2 ipc; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3878 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3879 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3880 +struct squashfs_dir_header_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3881 + unsigned int count:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3882 + unsigned int start_block:24; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3883 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3884 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3885 +struct squashfs_dir_entry_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3886 + unsigned int offset:13; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3887 + unsigned int type:3; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3888 + unsigned int size:8; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3889 + char name[0]; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3890 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3891 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3892 +struct squashfs_fragment_entry_2 { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3893 + unsigned int start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3894 + unsigned int size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3895 +} __attribute__ ((packed)); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3896 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3897 +#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3898 + SQUASHFS_MEMSET(s, d, n);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3899 + SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3900 + SQUASHFS_SWAP((s)->mode, d, 4, 12);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3901 + SQUASHFS_SWAP((s)->uid, d, 16, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3902 + SQUASHFS_SWAP((s)->guid, d, 24, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3903 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3904 +#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3905 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3906 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3907 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3908 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3909 +#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3910 + SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3911 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3912 +#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3913 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3914 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3915 + sizeof(struct squashfs_dev_inode_header_2)); \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3916 + SQUASHFS_SWAP((s)->rdev, d, 32, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3917 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3918 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3919 +#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3920 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3921 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3922 + sizeof(struct squashfs_symlink_inode_header_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3923 + SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3924 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3925 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3926 +#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3927 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3928 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3929 + sizeof(struct squashfs_reg_inode_header_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3930 + SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3931 + SQUASHFS_SWAP((s)->start_block, d, 64, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3932 + SQUASHFS_SWAP((s)->fragment, d, 96, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3933 + SQUASHFS_SWAP((s)->offset, d, 128, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3934 + SQUASHFS_SWAP((s)->file_size, d, 160, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3935 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3936 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3937 +#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3938 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3939 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3940 + sizeof(struct squashfs_dir_inode_header_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3941 + SQUASHFS_SWAP((s)->file_size, d, 32, 19);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3942 + SQUASHFS_SWAP((s)->offset, d, 51, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3943 + SQUASHFS_SWAP((s)->mtime, d, 64, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3944 + SQUASHFS_SWAP((s)->start_block, d, 96, 24);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3945 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3946 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3947 +#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3948 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3949 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3950 + sizeof(struct squashfs_ldir_inode_header_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3951 + SQUASHFS_SWAP((s)->file_size, d, 32, 27);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3952 + SQUASHFS_SWAP((s)->offset, d, 59, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3953 + SQUASHFS_SWAP((s)->mtime, d, 72, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3954 + SQUASHFS_SWAP((s)->start_block, d, 104, 24);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3955 + SQUASHFS_SWAP((s)->i_count, d, 128, 16);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3956 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3957 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3958 +#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3959 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3960 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3961 + SQUASHFS_SWAP((s)->index, d, 0, 27);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3962 + SQUASHFS_SWAP((s)->start_block, d, 27, 29);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3963 + SQUASHFS_SWAP((s)->size, d, 56, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3964 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3965 +#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3966 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3967 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3968 + SQUASHFS_SWAP((s)->count, d, 0, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3969 + SQUASHFS_SWAP((s)->start_block, d, 8, 24);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3970 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3971 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3972 +#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3973 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3974 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3975 + SQUASHFS_SWAP((s)->offset, d, 0, 13);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3976 + SQUASHFS_SWAP((s)->type, d, 13, 3);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3977 + SQUASHFS_SWAP((s)->size, d, 16, 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3978 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3979 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3980 +#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3981 + SQUASHFS_SWAP_START\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3982 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3983 + SQUASHFS_SWAP((s)->start_block, d, 0, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3984 + SQUASHFS_SWAP((s)->size, d, 32, 32);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3985 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3986 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3987 +#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3988 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3989 +/* fragment and fragment table defines */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3990 +#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3991 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3992 +#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3993 + SQUASHFS_METADATA_SIZE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3994 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3995 +#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3996 + SQUASHFS_METADATA_SIZE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3997 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3998 +#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
3999 + SQUASHFS_METADATA_SIZE - 1) / \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4000 + SQUASHFS_METADATA_SIZE) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4001 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4002 +#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4003 + sizeof(int)) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4004 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4005 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4006 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4007 +#ifdef __KERNEL__ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4008 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4009 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4010 + * macros used to swap each structure entry, taking into account |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4011 + * bitfields and different bitfield placing conventions on differing |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4012 + * architectures |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4013 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4014 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4015 +#include <asm/byteorder.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4016 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4017 +#ifdef __BIG_ENDIAN |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4018 + /* convert from little endian to big endian */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4019 +#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4020 + tbits, b_pos) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4021 +#else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4022 + /* convert from big endian to little endian */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4023 +#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4024 + tbits, 64 - tbits - b_pos) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4025 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4026 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4027 +#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4028 + b_pos = pos % 8;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4029 + val = 0;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4030 + s = (unsigned char *)p + (pos / 8);\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4031 + d = ((unsigned char *) &val) + 7;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4032 + for(bits = 0; bits < (tbits + b_pos); bits += 8) \ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4033 + *d-- = *s++;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4034 + value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4035 +} |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4036 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4037 +#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4038 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4039 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4040 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4041 diff -Nru linux-2.6.19.ori2/include/linux/squashfs_fs_i.h linux-2.6.19.ori/include/linux/squashfs_fs_i.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4042 --- linux-2.6.19.ori2/include/linux/squashfs_fs_i.h 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4043 +++ linux-2.6.19.ori/include/linux/squashfs_fs_i.h 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4044 @@ -0,0 +1,45 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4045 +#ifndef SQUASHFS_FS_I |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4046 +#define SQUASHFS_FS_I |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4047 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4048 + * Squashfs |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4049 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4050 + * Copyright (c) 2002, 2003, 2004, 2005, 2006 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4051 + * Phillip Lougher <phillip@lougher.org.uk> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4052 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4053 + * This program is free software; you can redistribute it and/or |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4054 + * modify it under the terms of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4055 + * as published by the Free Software Foundation; either version 2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4056 + * or (at your option) any later version. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4057 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4058 + * This program is distributed in the hope that it will be useful, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4059 + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4060 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4061 + * GNU General Public License for more details. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4062 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4063 + * You should have received a copy of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4064 + * along with this program; if not, write to the Free Software |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4065 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4066 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4067 + * squashfs_fs_i.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4068 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4069 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4070 +struct squashfs_inode_info { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4071 + long long start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4072 + unsigned int offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4073 + union { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4074 + struct { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4075 + long long fragment_start_block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4076 + unsigned int fragment_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4077 + unsigned int fragment_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4078 + long long block_list_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4079 + } s1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4080 + struct { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4081 + long long directory_index_start; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4082 + unsigned int directory_index_offset; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4083 + unsigned int directory_index_count; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4084 + unsigned int parent_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4085 + } s2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4086 + } u; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4087 + struct inode vfs_inode; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4088 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4089 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4090 diff -Nru linux-2.6.19.ori2/include/linux/squashfs_fs_sb.h linux-2.6.19.ori/include/linux/squashfs_fs_sb.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4091 --- linux-2.6.19.ori2/include/linux/squashfs_fs_sb.h 1970-01-01 01:00:00.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4092 +++ linux-2.6.19.ori/include/linux/squashfs_fs_sb.h 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4093 @@ -0,0 +1,75 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4094 +#ifndef SQUASHFS_FS_SB |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4095 +#define SQUASHFS_FS_SB |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4096 +/* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4097 + * Squashfs |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4098 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4099 + * Copyright (c) 2002, 2003, 2004, 2005, 2006 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4100 + * Phillip Lougher <phillip@lougher.org.uk> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4101 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4102 + * This program is free software; you can redistribute it and/or |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4103 + * modify it under the terms of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4104 + * as published by the Free Software Foundation; either version 2, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4105 + * or (at your option) any later version. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4106 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4107 + * This program is distributed in the hope that it will be useful, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4108 + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4109 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4110 + * GNU General Public License for more details. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4111 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4112 + * You should have received a copy of the GNU General Public License |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4113 + * along with this program; if not, write to the Free Software |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4114 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4115 + * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4116 + * squashfs_fs_sb.h |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4117 + */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4118 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4119 +#include <linux/squashfs_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4120 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4121 +struct squashfs_cache { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4122 + long long block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4123 + int length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4124 + long long next_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4125 + char *data; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4126 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4127 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4128 +struct squashfs_fragment_cache { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4129 + long long block; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4130 + int length; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4131 + unsigned int locked; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4132 + char *data; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4133 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4134 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4135 +struct squashfs_sb_info { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4136 + struct squashfs_super_block sblk; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4137 + int devblksize; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4138 + int devblksize_log2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4139 + int swap; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4140 + struct squashfs_cache *block_cache; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4141 + struct squashfs_fragment_cache *fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4142 + int next_cache; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4143 + int next_fragment; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4144 + int next_meta_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4145 + unsigned int *uid; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4146 + unsigned int *guid; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4147 + long long *fragment_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4148 + unsigned int *fragment_index_2; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4149 + unsigned int read_size; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4150 + char *read_data; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4151 + char *read_page; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4152 + struct semaphore read_data_mutex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4153 + struct semaphore read_page_mutex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4154 + struct semaphore block_cache_mutex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4155 + struct semaphore fragment_mutex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4156 + struct semaphore meta_index_mutex; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4157 + wait_queue_head_t waitq; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4158 + wait_queue_head_t fragment_wait_queue; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4159 + struct meta_index *meta_index; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4160 + z_stream stream; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4161 + struct inode *(*iget)(struct super_block *s, squashfs_inode_t |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4162 + inode); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4163 + long long (*read_blocklist)(struct inode *inode, int |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4164 + index, int readahead_blks, char *block_list, |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4165 + unsigned short **block_p, unsigned int *bsize); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4166 + int (*read_fragment_index_table)(struct super_block *s); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4167 +}; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4168 +#endif |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4169 diff -Nru linux-2.6.19.ori2/init/do_mounts_rd.c linux-2.6.19.ori/init/do_mounts_rd.c |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4170 --- linux-2.6.19.ori2/init/do_mounts_rd.c 2006-11-29 22:57:37.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4171 +++ linux-2.6.19.ori/init/do_mounts_rd.c 2006-12-03 00:12:36.000000000 +0100 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4172 @@ -5,6 +5,7 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4173 #include <linux/ext2_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4174 #include <linux/romfs_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4175 #include <linux/cramfs_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4176 +#include <linux/squashfs_fs.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4177 #include <linux/initrd.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4178 #include <linux/string.h> |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4179 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4180 @@ -39,6 +40,7 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4181 * numbers could not be found. |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4182 * |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4183 * We currently check for the following magic numbers: |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4184 + * squashfs |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4185 * minix |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4186 * ext2 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4187 * romfs |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4188 @@ -53,6 +55,7 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4189 struct ext2_super_block *ext2sb; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4190 struct romfs_super_block *romfsb; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4191 struct cramfs_super *cramfsb; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4192 + struct squashfs_super_block *squashfsb; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4193 int nblocks = -1; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4194 unsigned char *buf; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4195 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4196 @@ -64,6 +67,7 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4197 ext2sb = (struct ext2_super_block *) buf; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4198 romfsb = (struct romfs_super_block *) buf; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4199 cramfsb = (struct cramfs_super *) buf; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4200 + squashfsb = (struct squashfs_super_block *) buf; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4201 memset(buf, 0xe5, size); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4202 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4203 /* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4204 @@ -101,6 +105,18 @@ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4205 goto done; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4206 } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4207 |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4208 + /* squashfs is at block zero too */ |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4209 + if (squashfsb->s_magic == SQUASHFS_MAGIC) { |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4210 + printk(KERN_NOTICE |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4211 + "RAMDISK: squashfs filesystem found at block %d\n", |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4212 + start_block); |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4213 + if (squashfsb->s_major < 3) |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4214 + nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4215 + else |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4216 + nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4217 + goto done; |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4218 + } |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4219 + |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4220 /* |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4221 * Read block 1 to test for minix and ext2 superblock |
4dfa721aa532
Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
4222 */ |