linux-stable-rt/fs
Davide Libenzi f348d70a32 [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications
Implement the half-closed devices notifiation, by adding a new POLLRDHUP
(and its alias EPOLLRDHUP) bit to the existing poll/select sets.  Since the
existing POLLHUP handling, that does not report correctly half-closed
devices, was feared to be changed, this implementation leaves the current
POLLHUP reporting unchanged and simply add a new bit that is set in the few
places where it makes sense.  The same thing was discussed and conceptually
agreed quite some time ago:

http://lkml.org/lkml/2003/7/12/116

Since this new event bit is added to the existing Linux poll infrastruture,
even the existing poll/select system calls will be able to use it.  As far
as the existing POLLHUP handling, the patch leaves it as is.  The
pollrdhup-2.6.16.rc5-0.10.diff defines the POLLRDHUP for all the existing
archs and sets the bit in the six relevant files.  The other attached diff
is the simple change required to sys/epoll.h to add the EPOLLRDHUP
definition.

There is "a stupid program" to test POLLRDHUP delivery here:

 http://www.xmailserver.org/pollrdhup-test.c

It tests poll(2), but since the delivery is same epoll(2) will work equally.

Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Michael Kerrisk <mtk-manpages@gmx.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-25 08:22:56 -08:00
..
9p [PATCH] 9p: fix name consistency problems 2006-03-25 08:22:54 -08:00
adfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
affs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
afs [PATCH] fs: Use ARRAY_SIZE macro 2006-03-24 07:33:19 -08:00
autofs
autofs4 [PATCH] sem2mutex: autofs4 wq_sem 2006-03-23 07:38:13 -08:00
befs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
bfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
cifs [PATCH] s/;;/;/g 2006-03-24 07:33:24 -08:00
coda [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
configfs
cramfs
debugfs
devfs
devpts [PATCH] devpts: use lib/parser.c for parsing mount options 2006-03-23 07:38:17 -08:00
efs [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
exportfs
ext2 [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
ext3 [PATCH] ext3: Properly report backup block present in a group 2006-03-24 07:33:30 -08:00
fat [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
freevxfs [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
fuse
hfs
hfsplus
hostfs
hpfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
hppfs
hugetlbfs [PATCH] convert hugetlbfs_counter to atomic 2006-03-22 07:54:04 -08:00
isofs [PATCH] isofs: remove unused debugging macros 2006-03-24 07:33:24 -08:00
jbd [PATCH] jbd: convert kjournald to kthread API 2006-03-25 08:22:50 -08:00
jffs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
jffs2 [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
jfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
lockd [PATCH] fs: Use ARRAY_SIZE macro 2006-03-24 07:33:19 -08:00
minix [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
msdos
ncpfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
nfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
nfs_common
nfsd [PATCH] fs: Use ARRAY_SIZE macro 2006-03-24 07:33:19 -08:00
nls [PATCH] fs: Use ARRAY_SIZE macro 2006-03-24 07:33:19 -08:00
ntfs [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
ocfs2 [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
openpromfs
partitions [PATCH] s390: Remove old history/whitespave from partition code 2006-03-24 07:33:17 -08:00
proc [PATCH] slab: implement /proc/slab_allocators 2006-03-25 08:22:49 -08:00
qnx4 [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
ramfs [PATCH] fs/*/file.c: drop insane header dependencies 2006-03-23 07:38:17 -08:00
reiserfs [PATCH] reiserfs: use balance_dirty_pages_ratelimited_nr in reiserfs_file_write() 2006-03-25 08:22:53 -08:00
romfs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
smbfs [PATCH] smbfs: Fix debug logging-only compilation error 2006-03-25 08:22:55 -08:00
sysfs
sysv [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
udf [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
ufs [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
vfat
xfs [PATCH] cpuset memory spread slab cache hooks 2006-03-24 07:33:23 -08:00
Kconfig [PATCH] relay: migrate from relayfs to a generic relay API 2006-03-23 19:56:55 +01:00
Kconfig.binfmt
Makefile [PATCH] relay: migrate from relayfs to a generic relay API 2006-03-23 19:56:55 +01:00
aio.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c [PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23 2006-03-23 20:00:26 +01:00
block_dev.c [PATCH] sb_set_blocksize cleanup 2006-03-24 07:33:25 -08:00
buffer.c [PATCH] fsync: extract internal code 2006-03-24 07:33:27 -08:00
char_dev.c
compat.c [PATCH] Conditionalize compat_sys_newfstatat 2006-03-24 07:33:27 -08:00
compat_ioctl.c [PATCH] fs: Use ARRAY_SIZE macro 2006-03-24 07:33:19 -08:00
dcache.c [PATCH] inotify: lock avoidance with parent watch status in dentry 2006-03-25 08:22:53 -08:00
dcookies.c
direct-io.c
dnotify.c
dquot.c [PATCH] cpuset memory spread: slab cache format 2006-03-24 07:33:23 -08:00
drop_caches.c
eventpoll.c [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
exec.c [PATCH] Introduce FMODE_EXEC file flag 2006-03-25 08:22:51 -08:00
fcntl.c [PATCH] Shrinks sizeof(files_struct) and better layout 2006-03-23 07:38:09 -08:00
fifo.c
file.c [PATCH] Shrinks sizeof(files_struct) and better layout 2006-03-23 07:38:09 -08:00
file_table.c [PATCH] get_empty_filp tweaks, inline epoll_init_file() 2006-03-23 07:38:17 -08:00
filesystems.c
fs-writeback.c
inode.c [PATCH] fs/inode.c: make iprune_mutex static 2006-03-25 08:22:51 -08:00
inotify.c [PATCH] inotify: lock avoidance with parent watch status in dentry 2006-03-25 08:22:53 -08:00
ioctl.c
ioprio.c
libfs.c [PATCH] sem2mutex: fs/libfs.c 2006-03-23 07:38:12 -08:00
locks.c
mbcache.c [PATCH] cpuset memory spread: slab cache filesystems 2006-03-24 07:33:23 -08:00
mpage.c
namei.c [PATCH] Missed error checking for intent's filp in open_namei(). 2006-03-25 08:22:51 -08:00
namespace.c
nfsctl.c [PATCH] fs: Use ARRAY_SIZE macro 2006-03-24 07:33:19 -08:00
open.c [PATCH] Add lookup_instantiate_filp usage warning 2006-03-25 08:22:51 -08:00
pipe.c
pnode.c [PATCH] s/;;/;/g 2006-03-24 07:33:24 -08:00
pnode.h
posix_acl.c
quota.c [PATCH] sem2mutex: quota 2006-03-23 07:38:11 -08:00
quota_v1.c
quota_v2.c [PATCH] sem2mutex: quota 2006-03-23 07:38:11 -08:00
read_write.c
readdir.c
select.c
seq_file.c [PATCH] sem2mutex: fs/seq_file.c 2006-03-23 07:38:12 -08:00
stat.c
super.c [PATCH] vfs: MS_VERBOSE should be MS_SILENT 2006-03-24 07:33:15 -08:00
xattr.c
xattr_acl.c