[lvm-devel] [PATCH] Make _init_rand() thread safe - use rand_r() instead of rand().

Alasdair G Kergon agk at redhat.com
Sat Dec 6 13:58:26 UTC 2008


On Fri, Dec 05, 2008 at 10:27:44PM -0500, Dave Wysochanski wrote:
> On Sat, 2008-12-06 at 02:26 +0000, Alasdair G Kergon wrote:
> > On Fri, Dec 05, 2008 at 05:52:45PM -0500, Dave Wysochanski wrote:

> > > +	if (!create_temp_name(temp_dir, temp_file, sizeof(temp_file), &fd,
> > > +			      &vg->cmd->rand_seed)) {
> > Just pass 'cmd'? (as first arg)

> I originally did that but then thought it might be better to avoid
> polluting lvm-file.c with includes just so I could dereference cmd.

Doesn't really matter as lvm-file.c is within the library, and the include
you need is also internal.  Not important though, don't bother changing
it now if you don't want to.
 
> > Does this patch do enough to ensure each thread will get a different value of
> > 'seed'?
> Probably not.  A better seed might use /dev/urandom or gettimeofday()
> with tv_usec granularity.
 
Yup - the existing one-second granularity makes a collision likely - tv_usec
ought to be adequate.

Alasdair
-- 
agk at redhat.com




More information about the lvm-devel mailing list