Re: [PATCH] staging: lustre: fix sparse warning on LPROC_SEQ_FOPS macros

Tristan Lelong
2014-12-06T22:34:09Z

Andreas,

On Sat, Dec 06, 2014 at 05:05:14PM +0000, Dilger, Andreas wrote:
> On 2014/12/05, 3:41 PM, "Tristan Lelong" <tristan@lelong.xyz> wrote:
>
>
> Sorry, but I don't see where you get 80 from? fh_name is declared as a
> "const char *", and initialized in the declaration of fld_hash[]. I'd
> thought to reply that sizeof(fh_name) would even be better than a #define,
> but sizeof(const char *) doesn't actually make sense.
>

You are right, I got confused with the names trying to follow the declaration of the variable.

> The longest declared fh_name is 4 characters, but I'm not sure of an easy
> way to determine this at compile time. I guess one option is to change
> the declaration of struct lu_fld_hash to use "const char fh_name[4];" and
> then use sizeof(fh_name), but I don't know if that is better than just
> declaring a small buffer (8 chars) for this usage. IMHO that is small
> enough to fit on the stack, since it is at the top of a very short
> callchain (userspace->sys_write->vfs_write->fld_proc_hash_seq_write())
> that just saves the value so the chance of stack overflow is basically nil.
>

I can implement any of those 2 options. If somebody as a strong preference, let me know,
otherwise I'll follow Andreas idea and will redo the patch with a stack name variable of size 8.

>
> Cheers, Andreas
> --
> Andreas Dilger
>
> Lustre Software Architect
> Intel High Performance Data Division
>
>

Thanks for your comment and help.