public inbox for lvm2-cvs@sourceware.org help / color / mirror / Atom feed
From: mornfall@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/daemons/clvmd clvmd.c Date: Wed, 27 Oct 2010 11:40:00 -0000 [thread overview] Message-ID: <20101027114015.26986.qmail@sourceware.org> (raw) CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: mornfall@sourceware.org 2010-10-27 11:40:15 Modified files: daemons/clvmd : clvmd.c Log message: Alasdair correctly pointed out that if the two closes are concurrent (I haven't checked, so they *might*), there is still a race possibility with the last fix. This patch fixes that. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd.c.diff?cvsroot=lvm2&r1=1.81&r2=1.82 --- LVM2/daemons/clvmd/clvmd.c 2010/10/27 09:13:37 1.81 +++ LVM2/daemons/clvmd/clvmd.c 2010/10/27 11:40:14 1.82 @@ -188,6 +188,14 @@ exit(status); } +static void safe_close(int *fd) +{ + if (*fd >= 0) { + int to_close = *fd; + *fd = -1; + close(to_close); + } +} void debuglog(const char *fmt, ...) { @@ -838,10 +846,7 @@ lastfd->next = thisfd->next; free_fd = thisfd; thisfd = lastfd; - if (free_fd->fd >= 0) { - close(free_fd->fd); - free_fd->fd = -1; - } + safe_close(&(free_fd->fd)); /* Queue cleanup, this also frees the client struct */ add_to_lvmqueue(free_fd, NULL, 0, NULL); @@ -1091,10 +1096,7 @@ thisfd->bits.localsock.pipe_client->bits.pipe.client = NULL; - if (thisfd->fd >= 0) { - close(thisfd->fd); - thisfd->fd = -1; - } + safe_close(&(thisfd->fd)); return 0; } else { int comms_pipe[2];
next reply other threads:[~2010-10-27 11:40 UTC|newest] Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-10-27 11:40 mornfall [this message] -- strict thread matches above, loose matches on Subject: below -- 2012-03-27 16:59 mbroz 2012-03-23 9:43 zkabelac 2012-02-28 10:42 zkabelac 2012-02-27 10:17 zkabelac 2012-02-08 13:03 zkabelac 2012-01-26 17:55 zkabelac 2012-01-25 22:36 zkabelac 2011-10-11 10:06 zkabelac 2011-10-11 9:56 zkabelac 2011-10-11 9:23 zkabelac 2011-10-11 9:18 zkabelac 2011-03-30 12:48 zkabelac 2011-02-28 19:50 zkabelac 2011-01-05 12:17 zkabelac 2010-12-22 14:00 zkabelac 2010-12-20 13:48 zkabelac 2010-11-29 12:44 zkabelac 2010-10-27 9:13 mornfall 2010-10-26 9:57 zkabelac 2010-10-26 9:01 zkabelac 2009-04-22 10:38 mbroz 2005-08-09 10:39 pcaulfield 2004-09-30 14:16 pcaulfield 2004-09-23 12:51 pcaulfield
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20101027114015.26986.qmail@sourceware.org \ --to=mornfall@sourceware.org \ --cc=lvm-devel@redhat.com \ --cc=lvm2-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).