[U-Boot] [PATCH v11 1/2] Introduced btrfs file-system with btrload command

Tom Rini
2013-04-03T18:04:03Z

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 04/03/2013 01:30 PM, Adnan Ali wrote:
> On 03/04/13 17:50, Tom Rini wrote:
>> On Tue, Apr 02, 2013 at 03:17:38PM +0100, Adnan Ali wrote:
>>
>>> Introduces btrfs file-system to read file from
>>> volume/sub-volumes with btrload command. This implementation
>>> has read-only support. This btrfs implementation is based on
>>> syslinux btrfs code, commit
>>> 269ebc845ebc8b46ef4b0be7fa0005c7fdb95b8d.
>>>
>>> v11: Mirro super block check. v10: patch problem
>>> reworked. v5: merged with master. v4: btrls command
>>> added.
>>>
>>> Signed-off-by: Adnan Ali <adnan.ali@codethink.co.uk>
>> With ELDK 5.3 toolchain, I see: btrfs.c: In function
>> 'insert_map': btrfs.c:144:4: warning: implicit declaration of
>> function 'malloc' [-Wimplicit-function-declaration] btrfs.c: In
>> function 'btrfs_read_super_block': btrfs.c:281:5: warning: unused
>> variable 'boots' [-Wunused-variable] btrfs.c:279:6: warning:
>> unused variable 'ret' [-Wunused-variable] btrfs.c: In function
>> 'btrfs_read_chunk_tree': btrfs.c:507:4: warning: format '%d'
>> expects argument of type 'int', but argument 2 has type
>> 'uint64_t' [-Wformat] btrfs.c:503:6: warning: unused variable
>> 'status' [-Wunused-variable] btrfs.c: In function
>> 'btrfs_iget_by_inr': btrfs.c:563:24: warning: dereferencing
>> type-punned pointer will break strict-aliasing rules
>> [-Wstrict-aliasing] btrfs.c:583:26: warning: dereferencing
>> type-punned pointer will break strict-aliasing rules
>> [-Wstrict-aliasing] btrfs.c:591:3: warning: dereferencing
>> type-punned pointer will break strict-aliasing rules
>> [-Wstrict-aliasing] btrfs.c: In function 'btrfs_iget':
>> btrfs.c:607:26: warning: initialization from incompatible pointer
>> type [enabled by default] btrfs.c:621:22: warning: dereferencing
>> type-punned pointer will break strict-aliasing rules
>> [-Wstrict-aliasing] btrfs.c: In function 'btrfs_readlink':
>> btrfs.c:628:34: warning: dereferencing type-punned pointer will
>> break strict-aliasing rules [-Wstrict-aliasing] btrfs.c:629:21:
>> warning: dereferencing type-punned pointer will break
>> strict-aliasing rules [-Wstrict-aliasing] btrfs.c: In function
>> 'btrfs_readdir': btrfs.c:637:26: warning: initialization from
>> incompatible pointer type [enabled by default] btrfs.c: In
>> function 'btrfs_next_extent': btrfs.c:682:26: warning:
>> initialization from incompatible pointer type [enabled by
>> default] btrfs.c:695:25: warning: dereferencing type-punned
>> pointer will break strict-aliasing rules [-Wstrict-aliasing]
>> btrfs.c:720:2: warning: dereferencing type-punned pointer will
>> break strict-aliasing rules [-Wstrict-aliasing] btrfs.c: In
>> function 'btrfs_getfssec': btrfs.c:729:26: warning:
>> initialization from incompatible pointer type [enabled by
>> default] btrfs.c:730:12: warning: dereferencing type-punned
>> pointer will break strict-aliasing rules [-Wstrict-aliasing]
>> btrfs.c:741:8: warning: dereferencing type-punned pointer will
>> break strict-aliasing rules [-Wstrict-aliasing] btrfs.c:729:21:
>> warning: unused variable 'fs' [-Wunused-variable] btrfs.c: In
>> function 'put_inode': btrfs.c:844:4: warning: implicit
>> declaration of function 'free' [-Wimplicit-function-declaration]
>> btrfs.c: In function 'alloc_inode': btrfs.c:854:24: warning:
>> initialization makes pointer from integer without a cast [enabled
>> by default] btrfs.c:857:13: warning: assignment from incompatible
>> pointer type [enabled by default] btrfs.c: In function
>> 'btrfs_open_file': btrfs.c:952:2: warning: implicit declaration
>> of function 'searchdir' [-Wimplicit-function-declaration]
>> btrfs.c: In function 'searchdir': btrfs.c:1029:14: warning:
>> assignment makes pointer from integer without a cast [enabled by
>> default] btrfs.c:1058:17: warning: pointer targets in assignment
>> differ in signedness [-Wpointer-sign] btrfs.c: In function
>> 'getfssec': btrfs.c:1114:11: warning: unused variable 'handle'
>> [-Wunused-variable] btrfs.c: In function 'generic_getfssec':
>> btrfs.c:1132:26: warning: initialization from incompatible
>> pointer type [enabled by default] btrfs.c:1132:21: warning:
>> unused variable 'fs' [-Wunused-variable] fs.c:97:3: warning:
>> initialization from incompatible pointer type [enabled by
>> default] fs.c:97:3: warning: (near initialization for
>> 'fstypes[2].ls') [enabled by default]
>>
>> And with ELDK 4.2: btrfs.c: In function 'insert_map':
>> btrfs.c:144: warning: implicit declaration of function 'malloc'
>> btrfs.c: In function 'btrfs_read_super_block': btrfs.c:281:
>> warning: unused variable 'boots' btrfs.c:279: warning: unused
>> variable 'ret' btrfs.c: In function 'btrfs_read_chunk_tree':
>> btrfs.c:507: warning: format '%d' expects type 'int', but
>> argument 2 has type 'uint64_t' btrfs.c:503: warning: unused
>> variable 'status' btrfs.c: In function 'btrfs_iget': btrfs.c:607:
>> warning: initialization from incompatible pointer type btrfs.c:
>> In function 'btrfs_readdir': btrfs.c:637: warning: initialization
>> from incompatible pointer type btrfs.c: In function
>> 'btrfs_next_extent': btrfs.c:682: warning: initialization from
>> incompatible pointer type btrfs.c: In function 'btrfs_getfssec':
>> btrfs.c:729: warning: initialization from incompatible pointer
>> type btrfs.c:729: warning: unused variable 'fs' btrfs.c: In
>> function 'put_inode': btrfs.c:844: warning: implicit declaration
>> of function 'free' btrfs.c: In function 'alloc_inode':
>> btrfs.c:854: warning: initialization makes pointer from integer
>> without a cast btrfs.c:857: warning: assignment from incompatible
>> pointer type btrfs.c: In function 'btrfs_open_file': btrfs.c:952:
>> warning: implicit declaration of function 'searchdir' btrfs.c: In
>> function 'searchdir': btrfs.c:1029: warning: assignment makes
>> pointer from integer without a cast btrfs.c:1058: warning:
>> pointer targets in assignment differ in signedness btrfs.c: In
>> function 'getfssec': btrfs.c:1114: warning: unused variable
>> 'handle' btrfs.c: In function 'generic_getfssec': btrfs.c:1132:
>> warning: initialization from incompatible pointer type
>> btrfs.c:1132: warning: unused variable 'fs' fs.c:97: warning:
>> initialization from incompatible pointer type
>>
>> Please fix. I can test ELDK 4.2 if you fix the ELDK 5.3 warnings
>> (which also show up with other toolchains).
>>
> But initially you said you will do it. But ok

Sorry I was unclear. I said I would take care of the fact that you're
duplicating syslinux's generic inode structure as well inside of the
btrfs code as U-Boot is bad in this regard and doesn't have a generic
inode struct that filesystems can work from (and all filesystems do
something like this), as a later cleanup.

- --
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJRXG8TAAoJENk4IS6UOR1WD7cQAJK4fnp89OzOxXg1GRdSvOUd
cl2wxnsedhPD1O7lEcgdf+/6l1ikbx1Y5gFpMUiPeGNv+cYyKE7pj1wHc+88SqAQ
+1IuMAncIQcwp7X9H4LbKSFDpoXr4X6P5v96QS62qcRhZgzD/Jg+h3A7sQqPQTct
K+kKRo66xO1vmymY4qC8BxyRJW4lZVfc7J3NvMv1nSl6C191S5IfhfID45Oi3HOn
0Ybf9IgzVsH5TUUL/8ZOFzELtrCwYZ+R4UHoyvQruXV6htQ91qoxY9KXYtJV/6Zk
AxPHFGm2hHQU8KrpDnMcSqdt+xh4MVU6DWNCbSTBpE9h4CKmgQdf+beE9/10Yzs/
5pqfqvNfsIUJ6HHh+U7+vQ+1BlUNIiLcxISTDa4uRoavSSDjUZy9vXLCkV5Y071h
KCkNmpww2/NJ+5ZrL8Ws2LGEw4y2Ll8Xygh6Ps/fouSO2b/FuDcIHo3zJr43yBvD
7rtf9zIJkM/4RvECnppthXMhotk+5CcSti3UIzNMRvu1MjOn5t/o/YEf7YeVFtQh
Iz2cvBglbLZxe2J3QSHAnhM+ds0QT3HqFWWSAXj610SNyKccGL4luTHNPIgWE4er
aX8NqyZMqbE87INy2TsWxSPuF9rRhbSESULiyW1CdxpZF/IR2Zybu1puuuPR9qTy
6Qh7KDXcUwML+Ou2pDv5
=4GJz
-----END PGP SIGNATURE-----