lkml.org 
[lkml]   [2005]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 7/7] uml: retry host close() on EINTR


    On Sat, 10 Sep 2005, Paolo 'Blaisorblade' Giarrusso wrote:
    >
    > When calling close() on the host, we must retry the operation when we get
    > EINTR.

    Actually, no.

    If close() return EINTR, the file descriptor _will_ have been closed. The
    error return just tells you that soem error happened on the file: for
    example, in the case of EINTR, the close() may not have flushed all the
    pending data synchronously.

    Re-doing the close() is the wrong thing to do, since in a threaded
    environment, something else might have opened another file, gotten the
    same file descriptor, and you now close _another_ file.

    (Normally, re-doing the close will just return EBADF, of course).

    I'm going to drop this patch, but in case you've ever seen a case where
    EINTR actually means that the fd didn't get closed, please holler, and we
    need to fix it.

    Linus
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-11-18 23:46    [W:0.019 / U:6.400 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site