The code looks fine, but the explanation needs some tweaks: On Mon, Apr 04, 2022 at 11:25:54AM +0100, Luís Henriques wrote: > fscrypt keys have used the $FSTYP as prefix. However this format is being > deprecated -- newer kernels already allow the usage of the generic > 'fscrypt:' prefix for ext4 and f2fs. This patch allows the usage of this > new prefix for testing filesystems that have never supported the old > format, but keeping the $FSTYP prefix for filesystems that support it, so > that old kernels can be tested. This explanation is inconsistent with the code, which uses FSTYP for only ext4 and f2fs, and fscrypt for everything else including ubifs. A better explanation would be something like "Only use $FSTYP on filesystems that never supported the 'fscrypt' prefix, i.e. ext4 and f2fs." > +# Keys are named $FSTYP:KEYDESC where KEYDESC is the 16-character key descriptor > +# hex string. Newer kernels (ext4 4.8 and later, f2fs 4.6 and later) also allow > +# the common key prefix "fscrypt:" in addition to their filesystem-specific key > +# prefix ("ext4:", "f2fs:"). It would be nice to use the common key prefix, but > +# for now use the filesystem- specific prefix for these 2 filesystems to make it > +# possible to test older kernels, and the "fscrypt" prefix for anything else. > +_get_fs_keyprefix() The first part of this comment sort of implies that FSTYP is the default and "fscrypt" is the exception, but it should be the other way around. How about: # When fscrypt keys are added using the legacy mechanism (process-subscribed # keyrings rather than filesystem keyrings), they are normally named # "fscrypt:KEYDESC" where KEYDESC is the 16-character key descriptor hex string. # However, ext4 and f2fs didn't add support for the "fscrypt" prefix until # kernel v4.8 and v4.6, respectively. Before that, they used "ext4" and "f2fs", # respectively. To allow testing ext4 and f2fs encryption on kernels older than # this, we use these filesystem-specific prefixes for ext4 and f2fs.