lkml.org 
[lkml]   [2020]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 00/17] VFS: Filesystem information and notifications [ver #17]
    From
    Date
    On Tue, 2020-03-03 at 15:10 +0100, Miklos Szeredi wrote:
    > On Tue, Mar 3, 2020 at 2:43 PM Greg Kroah-Hartman
    > <gregkh@linuxfoundation.org> wrote:
    > > On Tue, Mar 03, 2020 at 02:34:42PM +0100, Miklos Szeredi wrote:
    > > > If buffer is too small to fit the whole file, return error.
    > >
    > > Why? What's wrong with just returning the bytes asked for? If
    > > someone
    > > only wants 5 bytes from the front of a file, it should be fine to
    > > give
    > > that to them, right?
    >
    > I think we need to signal in some way to the caller that the result
    > was truncated (see readlink(2), getxattr(2), getcwd(2)), otherwise
    > the
    > caller might be surprised.
    >
    > > > Verify that the number of bytes read matches the file size,
    > > > otherwise
    > > > return error (may need to loop?).
    > >
    > > No, we can't "match file size" as sysfs files do not really have a
    > > sane
    > > "size". So I don't want to loop at all here, one-shot, that's all
    > > you
    > > get :)
    >
    > Hmm. I understand the no-size thing. But looping until EOF (i.e.
    > until read return zero) might be a good idea regardless, because
    > short
    > reads are allowed.

    Surely a short read equates to an error.

    That has to be the definition of readfile() because you can do the
    looping thing with read(2) and get the entire file anyway.

    If you think about it don't you arrive at the conclusion this can
    be done with read(2) alone anyway because you have to loop to get
    the entire file, otherwise there's no point to the syscall!

    Ian

    \
     
     \ /
      Last update: 2020-03-04 05:21    [W:2.967 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site