fscrypt: fix build with pre-4.6 gcc versions
authorEric Biggers <ebiggers@google.com>
Fri, 19 Jan 2018 21:45:24 +0000 (13:45 -0800)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 1 Feb 2018 15:51:18 +0000 (10:51 -0500)
gcc versions prior to 4.6 require an extra level of braces when using a
designated initializer for a member in an anonymous struct or union.
This caused a compile error with the 'struct qstr' initialization in
__fscrypt_encrypt_symlink().

Fix it by using QSTR_INIT().

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Fixes: 76e81d6d5048 ("fscrypt: new helper functions for ->symlink()")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/crypto/hooks.c

index 28f9f059571d27c4a7214ad5f95bc858ffe4e980..bec06490fb13be7802cc9c9e830dd7dec27774ab 100644 (file)
@@ -158,7 +158,7 @@ int __fscrypt_encrypt_symlink(struct inode *inode, const char *target,
                              unsigned int len, struct fscrypt_str *disk_link)
 {
        int err;
-       struct qstr iname = { .name = target, .len = len };
+       struct qstr iname = QSTR_INIT(target, len);
        struct fscrypt_symlink_data *sd;
        unsigned int ciphertext_len;