Skip to content
  • Stanislav Kinsbursky's avatar
    ipc: introduce message queue copy feature · 4a674f34
    Stanislav Kinsbursky authored
    
    
    This patch is required for checkpoint/restore in userspace.
    
    c/r requires some way to get all pending IPC messages without deleting
    them from the queue (checkpoint can fail and in this case tasks will be
    resumed, so queue have to be valid).
    
    To achive this, new operation flag MSG_COPY for sys_msgrcv() system call
    was introduced.  If this flag was specified, then mtype is interpreted as
    number of the message to copy.
    
    If MSG_COPY is set, then kernel will allocate dummy message with passed
    size, and then use new copy_msg() helper function to copy desired message
    (instead of unlinking it from the queue).
    
    Notes:
    
    1) Return -ENOSYS if MSG_COPY is specified, but
       CONFIG_CHECKPOINT_RESTORE is not set.
    
    Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
    Cc: Serge Hallyn <serge.hallyn@canonical.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Pavel Emelyanov <xemul@parallels.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    4a674f34