int nbd_client(int fd)

{

    int ret;

    int serrno;



    TRACE("Doing NBD loop");



    ret = ioctl(fd, NBD_DO_IT);

    if (ret == -1 && errno == EPIPE) {

        /* NBD_DO_IT normally returns EPIPE when someone has disconnected

         * the socket via NBD_DISCONNECT.  We do not want to return 1 in

         * that case.

         */

        ret = 0;

    }

    serrno = errno;



    TRACE("NBD loop returned %d: %s", ret, strerror(serrno));



    TRACE("Clearing NBD queue");

    ioctl(fd, NBD_CLEAR_QUE);



    TRACE("Clearing NBD socket");

    ioctl(fd, NBD_CLEAR_SOCK);



    errno = serrno;

    return ret;

}

int nbd_client(int fd)

{

    int ret;

    int serrno;



    TRACE("Doing NBD loop");



    ret = ioctl(fd, NBD_DO_IT);

    if (ret == -1 && errno == EPIPE) {

        







        ret = 0;

    }

    serrno = errno;



    TRACE("NBD loop returned %d: %s", ret, strerror(serrno));



    TRACE("Clearing NBD queue");

    ioctl(fd, NBD_CLEAR_QUE);



    TRACE("Clearing NBD socket");

    ioctl(fd, NBD_CLEAR_SOCK);



    errno = serrno;

    return ret;

}

int FUNC_0(int VAR_0)

{

    int VAR_1;

    int VAR_2;



    TRACE("Doing NBD loop");



    VAR_1 = ioctl(VAR_0, NBD_DO_IT);

    if (VAR_1 == -1 && errno == EPIPE) {

        







        VAR_1 = 0;

    }

    VAR_2 = errno;



    TRACE("NBD loop returned %d: %s", VAR_1, strerror(VAR_2));



    TRACE("Clearing NBD queue");

    ioctl(VAR_0, NBD_CLEAR_QUE);



    TRACE("Clearing NBD socket");

    ioctl(VAR_0, NBD_CLEAR_SOCK);



    errno = VAR_2;

    return VAR_1;

}

int FUNC_0(int VAR_0)
{ int VAR_1; int VAR_2; TRACE("Doing NBD loop"); VAR_1 = ioctl(VAR_0, NBD_DO_IT); if (VAR_1 == -1 && errno == EPIPE) { VAR_1 = 0; } VAR_2 = errno; TRACE("NBD loop returned %d: %s", VAR_1, strerror(VAR_2)); TRACE("Clearing NBD queue"); ioctl(VAR_0, NBD_CLEAR_QUE); TRACE("Clearing NBD socket"); ioctl(VAR_0, NBD_CLEAR_SOCK); errno = VAR_2; return VAR_1; }