linux/Documentation
J. Bruce Fields ffe1137ba7 nfsd4: delay filling in write iovec array till after xdr decoding
Our server rejects compounds containing more than one write operation.
It's unclear whether this is really permitted by the spec; with 4.0,
it's possibly OK, with 4.1 (which has clearer limits on compound
parameters), it's probably not OK.  No client that we're aware of has
ever done this, but in theory it could be useful.

The source of the limitation: we need an array of iovecs to pass to the
write operation.  In the worst case that array of iovecs could have
hundreds of elements (the maximum rwsize divided by the page size), so
it's too big to put on the stack, or in each compound op.  So we instead
keep a single such array in the compound argument.

We fill in that array at the time we decode the xdr operation.

But we decode every op in the compound before executing any of them.  So
once we've used that array we can't decode another write.

If we instead delay filling in that array till the time we actually
perform the write, we can reuse it.

Another option might be to switch to decoding compound ops one at a
time.  I considered doing that, but it has a number of other side
effects, and I'd rather fix just this one problem for now.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2012-11-26 09:08:15 -05:00
..
ABI SCSI misc on 20121012 2012-10-13 10:57:01 +09:00
DocBook Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-10-18 16:10:42 -07:00
EDID
PCI
RCU Merge branches 'bigrt.2012.09.23a', 'doctorture.2012.09.23a', 'fixes.2012.09.23a', 'hotplug.2012.09.23a' and 'idlechop.2012.09.23a' into HEAD 2012-09-24 20:02:22 -07:00
accounting doc: getdelays.c: remember to close() socket on error in create_nl_socket() 2012-09-01 09:58:59 -07:00
acpi
aoe aoe: update documentation to better reflect aoe-plus-udev usage 2012-10-06 03:05:30 +09:00
arm Merge branch 'fixes' into for-linus 2012-10-11 10:55:04 +01:00
arm64 arm64: MMU definitions 2012-09-17 13:41:56 +01:00
auxdisplay
backlight
blackfin
block block: Kill bi_destructor 2012-09-09 10:35:39 +02:00
blockdev
cdrom
cgroups memcg: trivial fixes for Documentation/cgroups/memory.txt 2012-10-09 16:22:54 +09:00
connector
console
cpu-freq acpi-cpufreq: Add support for disabling dynamic overclocking 2012-09-09 22:05:12 +02:00
cpuidle Honor state disabling in the cpuidle ladder governor 2012-09-04 01:35:44 +02:00
cris
crypto KEYS: Document asymmetric key type 2012-10-08 13:50:12 +10:30
development-process
device-mapper DM RAID: Add rebuild capability for RAID10 2012-10-11 13:40:24 +11:00
devicetree Merge branch 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux 2012-10-11 10:27:51 +09:00
driver-model pwm: add devm_pwm_get() and devm_pwm_put() 2012-09-10 17:05:45 +02:00
dvb get_dvb_firmware: fix download site for tda10046 firmware 2012-09-28 16:16:00 -03:00
early-userspace
extcon
fault-injection fault-injection: add tool to run command with failslab or fail_page_alloc 2012-07-30 17:25:22 -07:00
fb
filesystems nfsd4: delay filling in write iovec array till after xdr decoding 2012-11-26 09:08:15 -05:00
firmware_class
frv
hid HID: sensors: add documentation 2012-09-06 19:11:04 +01:00
hwmon hwmon: (coretemp) Add support for Atom CE4110/4150/4170 2012-10-14 15:21:33 -07:00
i2c i2c-mux-gpio: Update documentation 2012-10-05 22:23:54 +02:00
i2o
ia64 doc: aliasing-test: close fd on write error 2012-09-01 09:57:10 -07:00
ide
infiniband IB/ipoib: Add rtnl_link_ops support 2012-09-20 16:49:17 -04:00
input Input: add driver for FT5x06 based EDT displays 2012-07-24 23:55:03 -07:00
ioctl ioctl-number.txt: Remove legacy private ioctl's from media drivers 2012-08-14 00:07:39 -03:00
isdn
ja_JP
kbuild UAPI: Remove the objhdr-y export list 2012-10-02 18:01:56 +01:00
kdump
ko_KR
laptops Documentation: fix the VM knobs descritpion WRT pdflush 2012-08-04 12:15:09 +04:00
leds leds-lp5523: add channel name in the platform data 2012-09-11 18:32:41 +08:00
m68k
make
memory-devices
mips
misc-devices lis3lv02d: Add STMicroelectronics lis331dlh digital accelerometer 2012-09-05 13:44:04 -07:00
mmc
mn10300
mtd
namespaces
netlabel
networking vxlan: virtual extensible lan 2012-10-01 18:39:45 -04:00
nfc
parisc
pcmcia
power 1. New drivers: 2012-10-07 17:29:24 +09:00
powerpc
pps
prctl
pti
ptp
rapidio
s390
scheduler sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW 2012-09-13 16:52:04 +02:00
scsi [SCSI] megaraid_sas: Version, Changelog, Copyright update 2012-10-09 11:21:48 +01:00
security Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-14 13:39:34 -07:00
serial firmware: remove computone driver firmware and documentation 2012-08-16 12:31:18 -07:00
sh
sound Merge branch 'topic/tlv-chmap' into for-next 2012-09-15 16:32:31 +02:00
spi spi: Updates for v3.7 2012-10-02 17:26:42 -07:00
sysctl coredump: add support for %d=__get_dumpable() in core name 2012-10-06 03:05:15 +09:00
target target: Simplify fabric sense data length handling 2012-09-17 17:12:58 -07:00
telephony
thermal hwmon: exynos4: move thermal sensor driver to driver/thermal directory 2012-09-24 14:44:38 +08:00
timers
trace doc: fix old config name of kprobetrace 2012-09-27 12:11:29 +02:00
usb usb: add decriptor of persist fail for some morph usb devices 2012-08-10 12:06:39 -07:00
vDSO
video4linux [media] media: v4l2-ctrl: add a helper function to add standard control with driver specific menu 2012-10-05 21:48:03 -03:00
virtual Merge branch 'for-linus-37rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml 2012-10-10 11:15:20 +09:00
vm mm: remove vma arg from page_evictable 2012-10-09 16:22:55 +09:00
w1 1-Wire: Add support for the maxim ds1825 temperature sensor 2012-08-16 12:33:59 -07:00
watchdog watchdog: fix watchdog-test.c build warning 2012-08-29 17:12:58 +02:00
wimax
x86 x86/mce: Provide boot argument to honour bios-set CMCI threshold 2012-09-27 10:08:00 -07:00
zh_CN Documentation: Fixes some translation error in Documentation/zh_CN/gpio.txt 2012-09-26 13:12:32 -07:00
.gitignore
00-INDEX prio_tree: remove 2012-10-09 16:22:40 +09:00
BUG-HUNTING
Changes
CodingStyle CodingStyle: add networking specific block comment style 2012-10-06 03:04:59 +09:00
DMA-API-HOWTO.txt
DMA-API.txt
DMA-ISA-LPC.txt
DMA-attributes.txt common: DMA-mapping: add DMA_ATTR_SKIP_CPU_SYNC attribute 2012-07-30 12:25:47 +02:00
HOWTO
IPMI.txt IPMI: Remove SMBus driver info from the docs 2012-10-16 18:07:12 -07:00
IRQ-affinity.txt
IRQ-domain.txt
IRQ.txt
Intel-IOMMU.txt
Makefile
ManagementStyle
SAK.txt
SM501.txt
SecurityBugs
SubmitChecklist
SubmittingDrivers
SubmittingPatches
VGA-softcursor.txt
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
bus-virt-phys-mapping.txt
cachetlb.txt
circular-buffers.txt
clk.txt
coccinelle.txt
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
crc32.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
digsig.txt
dma-buf-sharing.txt
dmaengine.txt
dontdiff Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-10-01 09:06:36 -07:00
dynamic-debug-howto.txt
edac.txt Merge branch 'devel' 2012-07-29 21:11:05 -03:00
eisa.txt
email-clients.txt
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
highuid.txt
hw_random.txt
hwspinlock.txt
init.txt
initrd.txt
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt Merge branch 'modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-14 13:39:34 -07:00
kmemcheck.txt
kmemleak.txt
kobject.txt Documentation: Fix "struct kobj_type" to include newer members. 2012-09-04 16:06:34 -07:00
kprobes.txt
kref.txt
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
lockup-watchdogs.txt
logo.gif
logo.txt
magic-number.txt
md.txt
media-framework.txt
memory-barriers.txt
memory-hotplug.txt
mono.txt
mutex-design.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
percpu-rw-semaphore.txt percpu-rw-semaphore: fix documentation typos 2012-09-26 19:56:15 +02:00
pi-futex.txt
pinctrl.txt pinctrl: document semantics vs GPIO 2012-09-17 10:53:57 +02:00
pnp.txt
preempt-locking.txt
printk-formats.txt lib/vsprintf: update documentation to cover all of %p[Mm][FR] 2012-10-06 03:04:50 +09:00
pwm.txt pwm: add devm_pwm_get() and devm_pwm_put() 2012-09-10 17:05:45 +02:00
ramoops.txt pstore/ftrace: Convert to its own enable/disable debugfs knob 2012-09-06 22:16:58 -07:00
rbtree.txt rbtree: move augmented rbtree functionality to rbtree_augmented.h 2012-10-09 16:22:40 +09:00
remoteproc.txt remoteproc: add rproc_report_crash function to notify rproc crashes 2012-09-18 12:53:22 +03:00
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rpmsg.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt rtc-proc: permit the /proc/driver/rtc device to use other devices 2012-10-06 03:05:01 +09:00
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
smsc_ece1099.txt mfd: smsc: Add support for smsc gpio io/keypad driver 2012-10-01 15:27:48 +02:00
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
static-keys.txt
svga.txt
sysfs-rules.txt
sysrq.txt sparc64: Add global PMU register dumping via sysrq. 2012-10-16 09:34:01 -07:00
unaligned-memory-access.txt
unicode.txt
unshare.txt
vfio.txt vfio: Trivial Documentation correction 2012-09-21 10:48:03 -06:00
vgaarbiter.txt
video-output.txt
vme_api.txt
volatile-considered-harmful.txt
workqueue.txt
xz.txt
zorro.txt