[PATCH 6/47] sysfs: Make poll behaviour consistent



From: =?utf-8?q?Juha_Yrj=F6l=E4?= <juha.yrjola@xxxxxxxxxxxxx>

When no events have been reported by sysfs_notify(), sd->s_events
was previously set to zero. The initial value for new readers is
also zero, so poll was blocking, regardless of whether the attribute
was read by the process or not.

Make poll behave consistently by setting the initial value of
sd->s_events to non-zero.

Signed-off-by: Juha Yrjola <juha.yrjola@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
---
fs/sysfs/dir.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 61c4243..5f3d725 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -43,7 +43,7 @@ static struct sysfs_dirent * sysfs_new_d

memset(sd, 0, sizeof(*sd));
atomic_set(&sd->s_count, 1);
- atomic_set(&sd->s_event, 0);
+ atomic_set(&sd->s_event, 1);
INIT_LIST_HEAD(&sd->s_children);
list_add(&sd->s_sibling, &parent_sd->s_children);
sd->s_element = element;
--
1.4.2.1

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



Relevant Pages

  • Re: poll() in 2.6 and beyond
    ... > trigger (we should call poll() multiple times only when it returns zero). ... > POLLIN bit clear in the incoming events, which your test program doesn't ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)
  • Re: (2008-12-04) NS-RFC: Cooking with fire?
    ... the remaining pressure will leak down to zero in short order. ... when I read that particular question in the poll I somehow misread it and clicked on the "yes" for test firing. ...
    (rec.food.cooking)
  • [PATCH] sysfs: Make poll behaviour consistent
    ... was previously set to zero. ... also zero, so poll was blocking, regardless of whether the attribute ...
    (Linux-Kernel)
  • Re: Salaries for Lisp engineers
    ... The median salary for, say, experienced chess players ... is not necessarily zero just because most of them make their living ... I should think the results of such a poll would be subject to ...
    (comp.lang.lisp)
  • Re: pipe write buffer
    ... made WITHOUT blocking. ... every other function, 'stat', 'access'. ... The problem boils down to wether poll() selectdeliver "static" information or wether they deliver a snapshot from state at call-time ...
    (comp.unix.programmer)