bruns added inline comments.

INLINE COMMENTS

> michaelh wrote in databasesanitizer.cpp:316
> I've tried it. Sadly your suggestion does not work. With `fi = 
> filePathToStat(info.symlink.toLocal8Bit())` fi._st_dev is == 0 when the 
> symlink target does not exist. Hence it does tell me **why** the link can't 
> be followed. baloo's db otoh knows about this. As `deviceIdFilter` does never 
> contain 0 symlinks would be removed when they should be ignored. With `If(id 
> != 0)` truly "dead" symlinks will not be removed.
> Maybe I didn't understand what you're suggesting?
> 
> `filePathToStat` returns `QT_STATBUF`. My guess is that is essentially the 
> same as `QT_FSTAT`, at least `man fstat.2` says so.

What do you consider a "truly dead" symlink?

If you really want to do it correctly, you have to walk the file system 
yourself, one symlink target path component at a time - each path component can 
be a symlink itself, or a mount point. You should check the device id for 
*every* path component.

REPOSITORY
  R293 Baloo

REVISION DETAIL
  https://phabricator.kde.org/D11753

To: michaelh, #baloo, #frameworks
Cc: bruns, cfeck, smithjd, ashaposhnikov, michaelh, astippich, spoorun, 
ngraham, alexeymin

Reply via email to