[CRIU] [PATCH 7/8] files: add ability to set callbacks for character devices
Christopher Covington
cov at codeaurora.org
Tue Dec 10 08:44:56 PST 2013
Hi Andrey,
On 12/10/2013 11:26 AM, Andrey Vagin wrote:
> The difference in compare with unix sockets is that dump callbacks
> for character devices can be executed to test, which callback can be
> used for a given fd.
[...]
> --- a/files.c
> +++ b/files.c
> @@ -39,6 +39,8 @@
> #include "protobuf.h"
> #include "protobuf/fs.pb-c.h"
>
> +#include "plugin.h"
> +
> #define FDESC_HASH_SIZE 64
> static struct hlist_head file_desc_hash[FDESC_HASH_SIZE];
>
> @@ -276,7 +278,19 @@ static int dump_chrdev(struct fd_parms *p, int lfd, const int fdinfo)
> break;
> /* fallthrough */
> default: {
> + cr_plugin_dump_file_t *cb;
> char more[32];
> + int ret;
> +
> + ret = cr_plugin_dump_file(lfd, 0, true, &cb);
> + if (ret < 0 && ret != CRIU_CB_SKIP)
> + return -1;
> +
> + if (ret == 0) {
> + p->cb = cb;
> + ops = ®file_dump_ops;
> + break;
> + }
>
> sprintf(more, "%d:%d", maj, minor(p->stat.st_dev));
> return dump_unsupp_fd(p, "chr", more);
Could calling the callback be done in dump_unsupp_fd, allowing all file types,
rather than just character devices, to be handled by callbacks? (I'm
particularly interested in special handling of perf event file descriptors.)
Thanks,
Christopher
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.
More information about the CRIU
mailing list