]> git.karo-electronics.de Git - karo-tx-linux.git/commit
fat: eliminate iterations in fat_search_long and __fat_readdir in case of EOD
authorNamjae Jeon <namjae.jeon@samsung.com>
Thu, 7 Feb 2013 01:27:53 +0000 (12:27 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 18 Feb 2013 05:47:20 +0000 (16:47 +1100)
commit8846bf15a202a4b1e4e3ae7776f0700e2f9fccf3
treee4bedaf027b9cf402f626b2338e3f1906b63bf35
parent215dd67bc2b830b026c951c2519676e151c1952d
fat: eliminate iterations in fat_search_long and __fat_readdir in case of EOD

When doing lookups via fat_search_long(), we can stop checking for further
entries if we detect End of Directory, i.e.  if (de->name[0] == 0x00).The
current code traverses the cluster chain of a directory until a hit is
found or till the last cluster for that directory, ignoring the EOD mark.
Fix this.

Likewise,when readdir(3) is called, we can stop checking for further
entries in __fat_readdir() when we hit EOD.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Ravishankar N <ravi.n1@samsung.com>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/fat/dir.c