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:
parent
a912f55a6c
commit
3207dc4608
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue