• Tejun Heo's avatar
    kernfs: implement kernfs_ops->atomic_write_len · 4d3773c4
    Tejun Heo authored
    A write to a kernfs_node is buffered through a kernel buffer.  Writes
    <= PAGE_SIZE are performed atomically, while larger ones are executed
    in PAGE_SIZE chunks.  While this is enough for sysfs, cgroup which is
    scheduled to be converted to use kernfs needs a bit more control over
    it.
    
    This patch adds kernfs_ops->atomic_write_len.  If not set (zero), the
    behavior stays the same.  If set, writes upto the size are executed
    atomically and larger writes are rejected with -E2BIG.
    
    A different implementation strategy would be allowing configuring
    chunking size while making the original write size available to the
    write method; however, such strategy, while being more complicated,
    doesn't really buy anything.  If the write implementation has to
    handle chunking, the specific chunk size shouldn't matter all that
    much.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    4d3773c4
file.c 21.3 KB