linux/drivers/staging
David Howells 1dce27c5aa Wrap accesses to the fd_sets in struct fdtable
Wrap accesses to the fd_sets in struct fdtable (for recording open files and
close-on-exec flags) so that we can move away from using fd_sets since we
abuse the fd_set structs by not allocating the full-sized structure under
normal circumstances and by non-core code looking at the internals of the
fd_sets.

The first abuse means that use of FD_ZERO() on these fd_sets is not permitted,
since that cannot be told about their abnormal lengths.

This introduces six wrapper functions for setting, clearing and testing
close-on-exec flags and fd-is-open flags:

	void __set_close_on_exec(int fd, struct fdtable *fdt);
	void __clear_close_on_exec(int fd, struct fdtable *fdt);
	bool close_on_exec(int fd, const struct fdtable *fdt);
	void __set_open_fd(int fd, struct fdtable *fdt);
	void __clear_open_fd(int fd, struct fdtable *fdt);
	bool fd_is_open(int fd, const struct fdtable *fdt);

Note that I've prepended '__' to the names of the set/clear functions because
they require the caller to hold a lock to use them.

Note also that I haven't added wrappers for looking behind the scenes at the
the array.  Possibly that should exist too.

Signed-off-by: David Howells <dhowells@redhat.com>
Link: http://lkml.kernel.org/r/20120216174942.23314.1364.stgit@warthog.procyon.org.uk
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
2012-02-19 10:30:52 -08:00
..
android Wrap accesses to the fd_sets in struct fdtable 2012-02-19 10:30:52 -08:00
asus_oled Staging: asus_oled: Fixed use of obsolete function. 2011-11-26 18:13:54 -08:00
bcm Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
comedi module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
cptm1217
crystalhd staging: crystalhd: bc_dts_defs.h: Fix up coding style 2011-12-16 10:54:15 -08:00
cxt1e1 Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
echo
et131x staging: et131x: Revert changes from previous commit 2011-12-08 15:03:11 -08:00
frontier Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
ft1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
gma500 Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2012-01-10 11:04:36 -08:00
hv Staging: hv: storvsc: Fix a bug in create_bounce_buffer() 2011-12-08 14:59:47 -08:00
iio Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
keucr Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
line6 staging: line6: fixed ALSA/PCM interaction 2011-12-09 19:26:09 -08:00
media staging: fix go7007-usb license 2012-02-01 18:29:33 -08:00
mei staging/mei: add watchdog device registration wrappers 2011-12-22 13:46:16 -08:00
nvec staging: nvec: add device tree support 2011-11-26 17:17:14 -08:00
octeon MIPS: Octeon: Move some Ethernet support files out of staging. 2011-12-07 22:03:28 +00:00
olpc_dcon Staging: olpc_dcon.c: obsolete use of strict_stroul 2011-12-08 15:01:49 -08:00
omapdrm drm/omap: GEM, deal with cache 2011-12-22 13:46:15 -08:00
panel
phison staging/phison: Convert pci_table entries to PCI_DEVICE (if PCI_ANY_ID is used) 2011-11-28 04:24:32 +09:00
pohmelfs vfs: switch ->show_options() to struct dentry * 2012-01-06 23:19:54 -05:00
quatech_usb2 module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
quickstart
rtl8187se Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2011-10-26 15:39:02 +02:00
rtl8192e staging/rtl8192e: Register against lib80211 2011-12-22 13:48:59 -08:00
rtl8192u Staging: rtl8192u: remove api.c file 2011-11-26 16:25:54 -08:00
rtl8712 Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
rts5139 Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
rts_pstor Merge branch 'master' into pm-sleep 2011-12-21 21:59:45 +01:00
sbe-2t3e3
sep Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
serial m68k/serial: Remove obsolete IRQ_FLG_* users 2011-11-26 16:22:27 -08:00
serqt_usb2 module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
slicoss staging: slicoss depends on NET 2011-11-18 15:00:48 -08:00
sm7xx staging/sm7xx: Convert pci_table entries to PCI_DEVICE (if PCI_ANY_ID is used) 2011-11-28 04:24:32 +09:00
speakup module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
ste_rmi4
tidspbridge Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
usbip staging: usbip: removed unused definitions from header 2011-12-22 13:40:03 -08:00
vme module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
vt6655 staging: vt6655: integer overflows in private_ioctl() 2011-11-30 19:29:40 +09:00
vt6656 Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
winbond USB: convert drivers/staging/* to use module_usb_driver() 2011-11-18 09:42:11 -08:00
wlags49_h2 Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2012-01-09 12:18:17 -08:00
wlags49_h25 Staging: wlags49_h25: Makefile: remove unneeded stuff 2011-10-18 13:36:04 -07:00
wlan-ng USB: convert drivers/staging/* to use module_usb_driver() 2011-11-18 09:42:11 -08:00
xgifb staging: xgifb: enable forcecrt2type as a module parameter 2011-12-08 12:26:09 -08:00
zcache Staging: zcache: Fix calls to obsolete function 2011-11-26 18:13:55 -08:00
zram Staging: zram: Add a missing GFP_KERNEL specifier in zram_init_device() 2011-12-08 14:59:48 -08:00
Kconfig Staging: lttng: remove from the drivers/staging/ tree 2011-12-08 15:25:56 -08:00
Makefile Staging: lttng: remove from the drivers/staging/ tree 2011-12-08 15:25:56 -08:00
staging.c