lkml.org 
[lkml]   [2010]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [patch/rfc] Make poll/select report error (POLLNVAL and EBADF) for unsupported files
From
Date
Le dimanche 14 février 2010 à 14:27 -0800, Davide Libenzi a écrit :
> Currently poll and select consider a non poll-supported file as one with
> full event mask set, instead of reporting proper error to the caller.
> This behavior can fool the caller of proper functionality being returned,
> while instead no valid event was processed/read from the device.
> This came out linked to this bug report:
>
> http://bugzilla.kernel.org/show_bug.cgi?id=15272
>
> IMHO, it'd be more adequate to report proper error code, for files that do
> not support f_op->poll(), but then I am also not sure how much breakage
> can this bring to existing (already broken "in just the right way")
> applications.
> Untested, discussion-only, patch.
>
>
> Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
>
>
> - Davide

Hmm, according to POSIX :

The poll() function shall support regular files, terminal and
pseudo-terminal devices, FIFOs, pipes, sockets ...

Regular files shall always poll TRUE for reading and writing.


So unless I missed something, this patch could break some conformant
applications.

In particular, if an application is polling() on stdin (usually a tty),
and other 'files', what's happening if we do :

cat replay_file | application

Either it wont read stdin, or application exits without reading its
input.



--
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: 2010-02-15 18:45    [W:0.047 / U:0.776 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site