Re: [libvirt] [PATCH] Fix domain restore for files on root-squash NFS.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/24/2010 06:20 AM, Laine Stump wrote:
...since I see nothing in POSIX that guarantees that pipe() will preserve
your initialized values across failure.  I think it's better to
explicitly
set things to -1 on the failure path, rather than initializing that way.

Interesting point. If we can't rely on that, then __virExec() should be
changed too.

Since libvirtd is Linux-only, we can luckily rely on that at least for now:

int do_pipe_flags(int *fd, int flags)
{
        struct file *fw, *fr;
        int error;
        int fdw, fdr;

        if (flags & ~(O_CLOEXEC | O_NONBLOCK))
                return -EINVAL;

        fw = create_write_pipe(flags);
        if (IS_ERR(fw))
                return PTR_ERR(fw);
        fr = create_read_pipe(fw, flags);
        error = PTR_ERR(fr);
        if (IS_ERR(fr))
                goto err_write_pipe;

        error = get_unused_fd_flags(flags);
        if (error < 0)
                goto err_read_pipe;
        fdr = error;

        error = get_unused_fd_flags(flags);
        if (error < 0)
                goto err_fdr;
        fdw = error;

        audit_fd_pair(fdr, fdw);
        fd_install(fdr, fr);
        fd_install(fdw, fw);
        fd[0] = fdr;
        fd[1] = fdw;

        return 0;

 err_fdr:
        put_unused_fd(fdr);
 err_read_pipe:
        path_put(&fr->f_path);
        put_filp(fr);
 err_write_pipe:
        free_write_pipe(fw);
        return error;
}

which makes it quite low priority.

Paolo

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]