[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V3 2/6] libxl_read_file_contents: fix reading sysfs file
On Sun, Apr 19, 2015 at 11:50:48AM +0800, Chunyan Liu wrote: > Sysfs file has size=4096 but actual file content is less than that. > Current libxl_read_file_contents will treat it as error when file size > and actual file content differs, so reading sysfs file content with > this function always fails. Fix it so that we can reuse this function > to get sysfs file content in later pvusb work. > I'm not sure if I should classify this as a bug in Linux's sysfs interface. In any case, we would still like to detect the error case that file size is changed under our feet. I have a dumb idea of having a dedicated function that is used to read sysfs, but I'm not sure if it is too dumb. I will wait for Ian and Ian's input on this. Wei. > Signed-off-by: Chunyan Liu <cyliu@xxxxxxxx> > --- > tools/libxl/libxl_utils.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c > index 9053b27..18ad2b8 100644 > --- a/tools/libxl/libxl_utils.c > +++ b/tools/libxl/libxl_utils.c > @@ -363,12 +363,9 @@ int libxl_read_file_contents(libxl_ctx *ctx, const char > *filename, > if (!data) goto xe; > > rs = fread(data, 1, datalen, f); > - if (rs != datalen) { > + if (rs != datalen && !feof(f)) { > if (ferror(f)) > LOGE(ERROR, "failed to read %s", filename); > - else if (feof(f)) > - LOG(ERROR, "%s changed size while we were reading it", > - filename); > else > abort(); > goto xe; > -- > 1.8.5.2 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |