• Tejun Heo's avatar
    sysfs: remove sysfs_buffer->needs_read_fill · aea585ef
    Tejun Heo authored
    ->needs_read_fill is used to implement the following behaviors.
    
    1. Ensure buffer filling on the first read.
    2. Force buffer filling after a write.
    3. Force buffer filling after a successful poll.
    
    However, #2 and #3 don't really work as sysfs doesn't reset file
    position.  While the read buffer would be refilled, the next read
    would continue from the position after the last read or write,
    requiring an explicit seek to the start for it to be useful, which
    makes ->needs_read_fill superflous as read buffer is always refilled
    if f_pos == 0.
    
    Update sysfs_read_file() to test buffer->page for #1 instead and
    remove ->needs_read_fill.  While this changes behavior in extreme
    corner cases - e.g. re-reading a sysfs file after seeking to non-zero
    position after a write or poll, it's highly unlikely to lead to actual
    breakage.  This change is to prepare for using seq_file in the read
    path.
    
    While at it, reformat a comment in fill_write_buffer().
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Kay Sievers <kay@vrfy.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    aea585ef
file.c 19.2 KB