]> err.no Git - util-linux/commit
libblkid: read() optimization for small devices
authorKarel Zak <kzak@redhat.com>
Mon, 18 Jan 2010 14:43:25 +0000 (15:43 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 16 Feb 2010 08:58:56 +0000 (09:58 +0100)
commita9eec4da16cc053c10594a7d3c554d7fb78fcd3c
treee6149c03c692f68ebe854099d9db1e6badb71ad1
parent490340188b929188d1d877bd1ae3f25aa06cd026
libblkid: read() optimization for small devices

 - don't read the begin (69kB) of the device by one large read()
 - fill in the SB buffer dynamically
 - use extra buffer for FATs root dir entries (FAT FS label)
   on small devices to avoid large reads

Detect FAT12 on 1.4MB device (number of bytes):

Old version:

  $ strace -e read blkid -p floppy.img 2>&1 | \
awk -F ' = ' 'BEGIN {x=0} /read/ && !/.*ELF/ {x += $2} END { print x }'
  73292

New version:
  $ strace -e read blkid -p floppy.img 2>&1 | \
awk -F ' = ' 'BEGIN {x=0} /read/ && !/.*ELF/ {x += $2} END { print x }'
  8192

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
shlibs/blkid/src/blkidP.h
shlibs/blkid/src/probe.c
shlibs/blkid/src/superblocks/vfat.c