On Wed, 28 Oct 2015 14:46:23 +0800
Dave Young <[email protected]> wrote:

> Hi, Michael
> 
> > @@ -552,11 +563,18 @@ char *slurp_file(const char *filename, o
> >             if (err < 0)
> >                     die("Can not seek to the begin of file %s: %s\n",
> >                                     filename, strerror(errno));
> > +           buf = slurp_fd(fd, filename, size, &nread, use_mmap);
> >     } else {
> >             size = stats.st_size;
> > +           if (use_mmap) {
> > +                   buf = mmap(NULL, size, PROT_READ | PROT_WRITE,
> > +                              MAP_PRIVATE, fd, 0);
> > +                   nread = stats.st_size;
> > +           } else {
> > +                   buf = slurp_fd(fd, filename, size, &nread, 0);
> > +           }
> >     }
> 
> Drop above changes and replace below lines with an extra use_mmap argument
> should be enough?
> 
> -     buf = slurp_fd(fd, filename, size, &nread);
> [snip]

Hmm, I don't think so.

In case of non-character devices I either mmap the file directly (use_mmap=true)
or use "slurp_fd()" (use_mmap=false). So I can't unconditionaly use slurp_fd().

The change in slurp_fd() to use anonymous mmap in case of use_mmap=true is
not really necessary. I did it nevertheless for consistency. This ensures
that the slrup_file_mmap() functions *always* returns mmaped memory.

Michael


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to