]> 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>
Mon, 18 Jan 2010 14:43:25 +0000 (15:43 +0100)
commit1ca17f911a4a039941185077b285378129eafb09
tree2d9466557bfb06a7d6a30086cc6dd5c3f8497c29
parent108013b4178a6ad992d4c86fffb0d9351b8c02c5
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