Hi Richard, On Thu, Feb 21, 2019 at 12:52:38AM +0100, Richard Weinberger wrote: > On Wed, Feb 20, 2019 at 7:55 AM Eric Biggers <ebiggers@xxxxxxxxxx> wrote: > > +#define FSCRYPT_FS_KEYRING_DESCRIPTION_SIZE \ > > + (CONST_STRLEN("fscrypt-") + FIELD_SIZEOF(struct super_block, s_id)) > > + > > +#define FSCRYPT_MK_DESCRIPTION_SIZE (2 * FSCRYPT_KEY_DESCRIPTOR_SIZE + 1) > > + > > +static void format_fs_keyring_description( > > + char description[FSCRYPT_FS_KEYRING_DESCRIPTION_SIZE], > > + const struct super_block *sb) > > +{ > > + sprintf(description, "fscrypt-%s", sb->s_id); > > +} > > I fear ->s_id is not the right thing. > For filesystems such as ext4 ->s_id is the name of the backing block device, > so it is per filesysem instance unique. > But this is not guaranteed. For UBIFS ->s_id is just "ubifs", always. > So the names will clash. > > -- > Thanks, > //richard What name do you suggest using for UBIFS filesystems? The keyring name could be set by the filesystem via a fscrypt_operations callback if needed. Note that the keyring name isn't particularly important, since the ioctls will work regardless. But we might as well choose something logical, since the keyring name will still show up in /proc/keys. - Eric