9
0
Fork 0

ls command: call stat() only when necessary

When calling ls in short mode we do not have to call stat()
for additional informations because we do not use them. This
speeds up ls on filesystems on which stat() is expensive
because the barebox filesystem support always has to iterate
over the directory tree.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2012-12-03 11:21:24 +01:00
parent a912f55a6c
commit 3207dc4608
1 changed files with 5 additions and 4 deletions

View File

@ -73,12 +73,13 @@ int ls(const char *path, ulong flags)
while ((d = readdir(dir))) {
sprintf(tmp, "%s/%s", path, d->d_name);
if (lstat(tmp, &s))
goto out;
if (flags & LS_COLUMN)
if (flags & LS_COLUMN) {
string_list_add_sorted(&sl, d->d_name);
else
} else {
if (lstat(tmp, &s))
goto out;
ls_one(d->d_name, tmp, &s);
}
}
closedir(dir);