[PATCH v2 3/3] fs: add support for SquashFS 4.0

Yegor Yefremov yegorslists at googlemail.com
Fri Feb 19 06:54:05 PST 2016


On Wed, Feb 17, 2016 at 8:18 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Tue, Feb 16, 2016 at 09:38:03AM +0100, Yegor Yefremov wrote:
>> On Tue, Feb 16, 2016 at 9:23 AM,  <yegorslists at googlemail.com> wrote:
>> > From: Yegor Yefremov <yegorslists at googlemail.com>
>> >
>> > The driver was imported from Linux 4.4.
>> >
>> > Signed-off-by: Yegor Yefremov <yegorslists at googlemail.com>
>> > ---
>> > Changes:
>> >         v2: - fix checkpatch errors
>> >             - remove spinlock/wait code from cache implementation
>> >             - fix directory listing
>> >             - add documentation entry about SquashFS
>> >             - fix compiling without XZ enabled
>> >             - fix some memory leaks
>>
>> Memory leaks:
>>
>> 1. mount still produces 20 bytes, that I still haven't identified
>
> Does this accumulate if you repeat mount/unmount? Usually when
> allocating/freeing bunches of memory you don't have the exact amount of
> memory free afterwards.

hm, here is my output:

barebox:/ mkdir -p /mnt; meminfo; mount -t squashfs
/dev/spiflash.FileSystem /mnt; umount /mnt; meminfo
used: 101804
free: 4087068
squashfs squashfs0: squashfs_mount
used: 101816
free: 4087052
barebox:/ mkdir -p /mnt; meminfo; mount -t squashfs
/dev/spiflash.FileSystem /mnt; umount /mnt; meminfo
used: 101848
free: 4087024
squashfs squashfs0: squashfs_mount
used: 101860
free: 4087004
barebox:/ mkdir -p /mnt; meminfo; mount -t squashfs
/dev/spiflash.FileSystem /mnt; umount /mnt; meminfo
used: 101844
free: 4087024
squashfs squashfs0: squashfs_mount
used: 101864
free: 4086996

>> 2. ls -l has about 300 bytes, how do I best handle qstr duplicating?
>> Its name is *const char **. If I'm doing alloc() I'm breaking this
>> qualifier.

Fixed.

> Why do you alloc? In squashfs_readdir() you can do a
> nm.name = dentry->d_name.name instead of doing an extra allocation for
> the string.
>
>> 3. reading a file, i.e. cat has no memory leak so far according to meminfo
>
> \o/

Yegor



More information about the barebox mailing list