> - xfs_ino_t inum; /* inode num of entry */ > + xfs_ino_t inum; /* inode num of entry */ spurious unrelated whitespace change? > + /* Set up the name in the region trailing the hash entry. */ > + memcpy(p + 1, name, namelen); > + p->name.name = (const unsigned char *)(p + 1); > + p->name.len = namelen; > + p->name.type = ftype; just add a char namebuf[]; to the end of struct dir_hash_ent and use that. This has the same memory usage, but avoids the cast and pointer arithmetics magic.