https://bugs.kde.org/show_bug.cgi?id=438434

--- Comment #14 from Martin Steigerwald <mar...@lichtvoll.de> ---
Dear tagwerk19, I finally asked Linux kernel developers on fixed device
numbers:

Assumption on fixed device numbers in Plasma's desktop search Baloo

https://lore.kernel.org/linux-block/1769070.0rzTUBzp5V@ananda/T/#t

In there I got different opinions back. For one thing Qu Wenruo argued that
also find uses device numbers during runtime to see whether it crosses
filesystem boundaries. But on the other hand I do not think that "find" relies
on them to be stable across reboots.

Neil Brown clearly said that no userspace component can rely on device numbers
since kernel 2.4. Luckily he recommended an alternative:

"That is really hard to provide in general.  Possibly the best approach
is to use the statfs() systemcall to get the "f_fsid" field.  This is
64bits.  It is not supported uniformly well by all filesystems, but I
think it is at least not worse than using the device number.  For a lot
of older filesystems it is just an encoding of the device number.

For btrfs, xfs, ext4 it is much much better."

https://lore.kernel.org/linux-block/1769070.0rzTUBzp5V@ananda/T/#m28b8c889c9289ad1ec76cbf040938ea883e3f375

How about doing that? According to Qu Wenruo unlike filesystem UUID which is
the same for all subvolumes it would also work for BTRFS cause it XOR'd the
subvolume id into the filesystem id when using that system call.

While I still may find a work-around I think this approach could solve a lot of
the issues that arise from Baloo relying on stable device numbers. And for
filesystems not supporting it, it would at least not be worse than before. I
bet more KDE Plasma users are using BTRFS, XFS, Ext4 anyway.

Of course for BSD you would need to see for a different solution or use the
current approach, in case it does not have that functionality. I have no idea
what functionality BSD provides there. But for Linux I think this could be a
viable alternative.

What do you think?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to