vfs: workaround gcc <4.6 build error in link_path_walk()
Commitd6bb3e9075
("vfs: simplify and shrink stack frame of link_path_walk()") introduced build problems with GCC versions older than 4.6 due to the initialisation of a member of an anonymous union in struct qstr without enclosing braces. This hits GCC bug 10676 [1] (which was fixed in GCC 4.6 by [2]), and causes the following build error: fs/namei.c: In function 'link_path_walk': fs/namei.c:1778: error: unknown field 'hash_len' specified in initializer This is worked around by adding explicit braces. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676 [2] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=159206 Fixes:d6bb3e9075
(vfs: simplify and shrink stack frame of link_path_walk()) Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: linux-fsdevel@vger.kernel.org Cc: linux-metag@vger.kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
2856db7099
Коммит
a060dc5010
|
@ -1775,7 +1775,7 @@ static int link_path_walk(const char *name, struct nameidata *nd)
|
|||
struct dentry *parent = nd->path.dentry;
|
||||
nd->flags &= ~LOOKUP_JUMPED;
|
||||
if (unlikely(parent->d_flags & DCACHE_OP_HASH)) {
|
||||
struct qstr this = { .hash_len = hash_len, .name = name };
|
||||
struct qstr this = { { .hash_len = hash_len }, .name = name };
|
||||
err = parent->d_op->d_hash(parent, &this);
|
||||
if (err < 0)
|
||||
break;
|
||||
|
|
Загрузка…
Ссылка в новой задаче