linux/arch/ia64/kernel
Al Viro bd9b51e79c make default ->i_fop have ->open() fail with ENXIO
As it is, default ->i_fop has NULL ->open() (along with all other methods).
The only case where it matters is reopening (via procfs symlink) a file that
didn't get its ->f_op from ->i_fop - anything else will have ->i_fop assigned
to something sane (default would fail on read/write/ioctl/etc.).

	Unfortunately, such case exists - alloc_file() users, especially
anon_get_file() ones.  There we have tons of opened files of very different
kinds sharing the same inode.  As the result, attempt to reopen those via
procfs succeeds and you get a descriptor you can't do anything with.

	Moreover, in case of sockets we set ->i_fop that will only be used
on such reopen attempts - and put a failing ->open() into it to make sure
those do not succeed.

	It would be simpler to put such ->open() into default ->i_fop and leave
it unchanged both for anon inode (as we do anyway) and for socket ones.  Result:
	* everything going through do_dentry_open() works as it used to
	* sock_no_open() kludge is gone
	* attempts to reopen anon-inode files fail as they really ought to
	* ditto for aio_private_file()
	* ditto for perfmon - this one actually tried to imitate sock_no_open()
trick, but failed to set ->i_fop, so in the current tree reopens succeed and
yield completely useless descriptor.  Intent clearly had been to fail with
-ENXIO on such reopens; now it actually does.
	* everything else that used alloc_file() keeps working - it has ->i_fop
set for its inodes anyway

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-12-10 21:32:15 -05:00
..
.gitignore
acpi-ext.c
acpi.c ACPI / ia64: introduce variable acpi_lapic into ia64 2014-05-16 16:01:16 +02:00
asm-offsets.c
audit.c
brl_emu.c
crash.c ia64: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
crash_dump.c
cyclone.c
dma-mapping.c
efi.c ia64: efi: Format EFI memory type & attrs with efi_md_typeattr_format() 2014-10-03 18:41:01 +01:00
efi_stub.S
elfcore.c
entry.h
entry.S [IA64] Enable bpf syscall for ia64 2014-10-09 13:36:10 -07:00
err_inject.c
esi.c
esi_stub.S
fsys.S
fsyscall_gtod_data.h
ftrace.c
gate-data.S
gate.lds.S
gate.S
head.S
ia64_ksyms.c
init_task.c Rename .data.init_task to .data..init_task. 2010-03-03 11:25:58 +01:00
iosapic.c ia64: Use irq_init_desc 2014-05-16 14:05:22 +02:00
irq.c ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
irq_ia64.c ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
irq_lsapic.c
ivt.S
jprobes.S
kprobes.c ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
machine_kexec.c
machvec.c
Makefile
Makefile.gate
mca.c ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
mca_asm.S
mca_drv.c
mca_drv.h
mca_drv_asm.S
minstate.h
module.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
msi_ia64.c PCI/MSI: Use __get_cached_msi_msg() instead of get_cached_msi_msg() 2014-10-01 12:21:23 -06:00
nr-irqs.c
numa.c
pal.S
palinfo.c
paravirt.c
paravirt_inst.h
paravirt_patch.c
paravirt_patchlist.c
paravirt_patchlist.h
paravirtentry.S
patch.c
pci-dma.c
pci-swiotlb.c
perfmon.c make default ->i_fop have ->open() fail with ENXIO 2014-12-10 21:32:15 -05:00
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon_montecito.h
process.c ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
ptrace.c ARCH: AUDIT: audit_syscall_entry() should not require the arch 2014-09-23 16:21:26 -04:00
relocate_kernel.S
sal.c
salinfo.c
setup.c
sigframe.h
signal.c ia64: Use get_signal() signal_setup_done() 2014-08-06 13:02:14 +02:00
smp.c
smpboot.c
stacktrace.c
sys_ia64.c
time.c rtc: ia64: allow other architectures to use EFI RTC 2014-08-08 15:57:19 -07:00
topology.c
traps.c ia64: Replace __get_cpu_var uses 2014-08-26 13:45:52 -04:00
unaligned.c
uncached.c
unwind.c
unwind_decoder.c
unwind_i.h
vmlinux.lds.S