From: mwilck@arcor.de
To: neilb@suse.de, linux-raid@vger.kernel.org
Cc: mwilck@arcor.de
Subject: [PATCH 5/8] monitor: don't call pselect() on deleted sysfs files
Date: Mon, 25 Mar 2013 23:11:24 +0000 (UTC)
Date: Fri, 25 Oct 2013 12:07:36 +0200 [thread overview]
Message-ID: <1382695659-6231-6-git-send-email-mwilck@arcor.de> (raw)
In-Reply-To: <1382695659-6231-1-git-send-email-mwilck@arcor.de>
It makes no sense to listen for events on files that have
been deleted. This happens when arrays are stopped and the
kernel removes the associated sysfs structures.
Calling pselect() on the deleted attributes may cause a storm
of wake events.
Signed-off-by: Martin Wilck <mwilck@arcor.de>
---
monitor.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/monitor.c b/monitor.c
index e034a6a..3cb4214 100644
--- a/monitor.c
+++ b/monitor.c
@@ -38,8 +38,17 @@ static int write_attr(char *attr, int fd)
static void add_fd(fd_set *fds, int *maxfd, int fd)
{
+ struct stat st;
if (fd < 0)
return;
+ if (fstat(fd, &st) == -1) {
+ dprintf("%s: Invalid fd %d\n", __func__, fd);
+ return;
+ }
+ if (st.st_nlink == 0) {
+ dprintf("%s: fd %d was deleted\n", __func__, fd);
+ return;
+ }
if (fd > *maxfd)
*maxfd = fd;
FD_SET(fd, fds);
--
1.7.1
next prev parent reply other threads:[~2013-03-25 23:11 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-25 23:10 Fixes for DDF test case (race conditions in mdmon) mwilck
2013-03-25 23:11 ` [PATCH 1/8] DDF: __write_ddf_structure: Fix wrong reference to ddf->primary mwilck
2013-03-25 23:11 ` [PATCH 2/8] DDF: __write_init_super_ddf: just use seq number of active header mwilck
2013-03-25 23:11 ` [PATCH 4/8] DDF: add code to debug state changes mwilck
2013-03-25 23:11 ` [PATCH 3/8] DDF: brief_detail_super_ddf: print correct UUID for subarrays mwilck
2013-03-25 23:11 ` [PATCH 8/8] tests/10ddf-create: omit log output check mwilck
2013-03-25 23:11 ` [PATCH 7/8] monitor: treat unreadable array_state as clean mwilck
2013-03-25 23:11 ` [PATCH 6/8] monitor: read_and_act: handle race conditions for resync_start mwilck
2013-03-25 23:11 ` mwilck [this message]
2013-04-23 7:15 ` Fixes for DDF test case (race conditions in mdmon) NeilBrown
2013-04-23 17:30 ` Martin Wilck
2013-04-23 18:10 ` [PATCH] DDF: fix bug in compare_super_ddf mwilck
2013-04-24 6:34 ` NeilBrown
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=1382695659-6231-6-git-send-email-mwilck@arcor.de \
--to=mwilck@arcor.de \
--cc=linux-raid@vger.kernel.org \
--cc=neilb@suse.de \
/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: link
Be 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 NNTP newsgroup(s).