mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Do not lstat common path prefix
When both path have identical prefix i.e. /dev/disk/by-id skip 2 x lstat() for /dev /dev/disk /dev/disk/by-id and directly lstat() only different part of the path. Reduces amount of lstat calls on system with lots of devices.
This commit is contained in:
parent
5146908366
commit
538d5e81a7
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.89 -
|
Version 2.02.89 -
|
||||||
==================================
|
==================================
|
||||||
|
Reduce number of lstat calls when selecting device alias.
|
||||||
Add function to inialize common structure device members.
|
Add function to inialize common structure device members.
|
||||||
Always zalloc device structure during initialization.
|
Always zalloc device structure during initialization.
|
||||||
Fix missing thread list manipulation protection in dmeventd.
|
Fix missing thread list manipulation protection in dmeventd.
|
||||||
|
@ -259,6 +259,13 @@ static int _compare_paths(const char *path0, const char *path1)
|
|||||||
s0 = &p0[0] + 1;
|
s0 = &p0[0] + 1;
|
||||||
s1 = &p1[0] + 1;
|
s1 = &p1[0] + 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we reach here, both paths are the same length.
|
||||||
|
* Now skip past identical path components.
|
||||||
|
*/
|
||||||
|
while (*s0 && *s0 == *s1)
|
||||||
|
s0++, s1++;
|
||||||
|
|
||||||
/* We prefer symlinks - they exist for a reason!
|
/* We prefer symlinks - they exist for a reason!
|
||||||
* So we prefer a shorter path before the first symlink in the name.
|
* So we prefer a shorter path before the first symlink in the name.
|
||||||
* FIXME Configuration option to invert this? */
|
* FIXME Configuration option to invert this? */
|
||||||
|
Loading…
Reference in New Issue
Block a user