[lkml]   [2010]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[C/R v20][PATCH 75/96] c/r: introduce checkpoint/restore methods to struct proto_ops
    This adds new 'proto_ops' function for checkpointing and restoring
    sockets. This allows the checkpoint/restart code to compile nicely
    when, e.g., AF_UNIX sockets are selected as a module.

    It also adds a function 'collecting' a socket for leak-detection
    during full-container checkpoint. This is useful for those sockets
    that hold references to other "collectable" objects. Two examples are
    AF_UNIX buffers which reference the socket of origin, and sockets that
    have file descriptors in-transit.

    Signed-off-by: Oren Laadan <>
    Acked-by: Serge E. Hallyn <>
    Tested-by: Serge E. Hallyn <>
    include/linux/net.h | 9 +++++++++
    1 files changed, 9 insertions(+), 0 deletions(-)

    diff --git a/include/linux/net.h b/include/linux/net.h
    index 5e8083c..72a53b9 100644
    --- a/include/linux/net.h
    +++ b/include/linux/net.h
    @@ -153,6 +153,9 @@ struct sockaddr;
    struct msghdr;
    struct module;

    +struct ckpt_ctx;
    +struct ckpt_hdr_socket;
    struct proto_ops {
    int family;
    struct module *owner;
    @@ -197,6 +200,12 @@ struct proto_ops {
    int offset, size_t size, int flags);
    ssize_t (*splice_read)(struct socket *sock, loff_t *ppos,
    struct pipe_inode_info *pipe, size_t len, unsigned int flags);
    + int (*checkpoint)(struct ckpt_ctx *ctx,
    + struct socket *sock);
    + int (*collect)(struct ckpt_ctx *ctx,
    + struct socket *sock);
    + int (*restore)(struct ckpt_ctx *ctx, struct socket *sock,
    + struct ckpt_hdr_socket *h);

    #define DECLARE_SOCKADDR(type, dst, src) \

     \ /
      Last update: 2010-03-17 17:25    [W:0.039 / U:0.060 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site