aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-09-23nfs: introduce mount option '-olocal_lock' to make locks localSuresh Jayaraman4-16/+97
NFS clients since 2.6.12 support flock locks by emulating fcntl byte-range locks. Due to this, some windows applications which seem to use both flock (share mode lock mapped as flock by Samba) and fcntl locks sequentially on the same file, can't lock as they falsely assume the file is already locked. The problem was reported on a setup with windows clients accessing excel files on a Samba exported share which is originally a NFS mount from a NetApp filer. Older NFS clients (< 2.6.12) did not see this problem as flock locks were considered local. To support legacy flock behavior, this patch adds a mount option "-olocal_lock=" which can take the following values: 'none' - Neither flock locks nor POSIX locks are local 'flock' - flock locks are local 'posix' - fcntl/POSIX locks are local 'all' - Both flock locks and POSIX locks are local Testing: - This patch was tested by using -olocal_lock option with different values and the NLM calls were noted from the network packet captured. 'none' - NLM calls were seen during both flock() and fcntl(), flock lock was granted, fcntl was denied 'flock' - no NLM calls for flock(), NLM call was seen for fcntl(), granted 'posix' - NLM call was seen for flock() - granted, no NLM call for fcntl() 'all' - no NLM calls were seen during both flock() and fcntl() - No bugs were seen during NFSv4 locking/unlocking in general and NFSv4 reboot recovery. Cc: Neil Brown <[email protected]> Signed-off-by: Suresh Jayaraman <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-22lockd: Remove BKL from the clientBryan Schumaker2-14/+14
This patch removes all calls to lock_kernel() from the client. This patch should be applied after the "fs/lock.c prepare for BKL removal" patch submitted by Arnd Bergmann on September 18. Signed-off-by: Bryan Schumaker <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21SUNRPC: Refactor logic to NUL-terminate strings in pagesChuck Lever5-14/+21
Clean up: Introduce a helper to '\0'-terminate XDR strings that are placed in a page in the page cache. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21SUNRPC: Correct an rpcbind debugging messageChuck Lever1-2/+3
Clean up. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21NFS: Fix NFSv3 debugging messages in fs/nfs/nfs3proc.cChuck Lever1-2/+3
Clean up. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21NFS: Convert nfsiod to use alloc_workqueue()Trond Myklebust1-1/+1
create_singlethread_workqueue() is deprecated. Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21SUNRPC: Convert rpciod to use the alloc_workqueue() interfaceTrond Myklebust1-1/+1
create_workqueue() is a deprecated function. Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21NFSv4.1: Fix the slotid initialisation in nfs_async_rename()Trond Myklebust1-0/+2
This fixes an Oopsable condition that was introduced by commit d3d4152a5d59af9e13a73efa9e9c24383fbe307f (nfs: make sillyrename an async operation) Signed-off-by: Trond Myklebust <[email protected]>
2010-09-21NFS: Fix a use-after-free case in nfs_async_rename()Trond Myklebust1-7/+2
The call to nfs_async_rename_release() after rpc_run_task() is incorrect. The rpc_run_task() is always guaranteed to call the ->rpc_release() method. Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17nfs: make sillyrename an async operationJeff Layton5-11/+263
A synchronous rename can be interrupted by a SIGKILL. If that happens during a sillyrename operation, it's possible for the rename call to be sent to the server, but the task exits before processing the reply. If this happens, the sillyrenamed file won't get cleaned up during nfs_dentry_iput and the server is left with a dangling .nfs* file hanging around. Fix this problem by turning sillyrename into an asynchronous operation and have the task doing the sillyrename just wait on the reply. If the task is killed before the sillyrename completes, it'll still proceed to completion. Signed-off-by: Jeff Layton <[email protected]> Reviewed-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17nfs: move nfs_sillyrename to unlink.cJeff Layton3-72/+85
...since that's where most of the sillyrenaming code lives. A comment block is added to the beginning as well to clarify how sillyrenaming works. Also, make nfs_async_unlink static as nfs_sillyrename is the only caller. Signed-off-by: Jeff Layton <[email protected]> Reviewed-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17nfs: standardize the rename response containerJeff Layton5-27/+22
Right now, v3 and v4 have their own variants. Create a standard struct that will work for v3 and v4. v2 doesn't get anything but a simple error and so isn't affected by this. Signed-off-by: Jeff Layton <[email protected]> Reviewed-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17nfs: standardize the rename args containerJeff Layton7-51/+32
Each NFS version has its own version of the rename args container. Standardize them on a common one that's identical to the one NFSv4 uses. Signed-off-by: Jeff Layton <[email protected]> Reviewed-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Add an 'open_context' element to struct nfs_rpc_opsTrond Myklebust4-5/+10
Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Clean up nfs4_proc_create()Trond Myklebust5-51/+58
Remove all remaining references to the struct nameidata from the low level NFS layers. Again pass down a partially initialised struct nfs_open_context when we want to do atomic open+create. Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFSv4: Further cleanups for nfs4_open_revalidate()Trond Myklebust3-35/+26
Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFSv4: Clean up nfs4_open_revalidateTrond Myklebust3-19/+17
Remove references to 'struct nameidata' from the low-level open_revalidate code, and replace them with a struct nfs_open_context which will be correctly initialised upon success. Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFSv4: Further minor cleanups for nfs4_atomic_open()Trond Myklebust3-31/+20
Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFSv4: Clean up nfs4_atomic_openTrond Myklebust5-36/+93
Start moving the 'struct nameidata' dependent code out of the lower level NFS code in preparation for the removal of open intents. Instead of the struct nameidata, we pass down a partially initialised struct nfs_open_context that will be fully initialised by the atomic open upon success. Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17SUNRPC: Remove rpcb_getport_sync()Chuck Lever2-52/+0
Clean up: rpcb_getport_sync() has no more users, so remove it. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Allow NFSROOT debugging messages to be enabled dynamicallyChuck Lever3-7/+39
As a convenience, introduce a kernel command line option to enable NFSROOT debugging messages. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Clean up nfsroot.cChuck Lever1-418/+1
Clean up: now that mount option parsing for nfsroot is handled in fs/nfs/super.c, remove code in fs/nfs/nfsroot.c that is no longer used. This includes code that constructs the legacy nfs_mount_data structure, and code that does a MNT call to the server. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Use super.c for NFSROOT mount option parsingChuck Lever3-17/+187
Replace duplicate code in NFSROOT for mounting an NFS server on '/' with logic that uses the existing mainline text-based logic in the NFS client. Add documenting comments where appropriate. Note that this means NFSROOT mounts now use the same default settings as v2/v3 mounts done via mount(2) from user space. vers=3,tcp,rsize=<negotiated default>,wsize=<negotiated default> As before, however, no version/protocol negotiation with the server is done. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Clean up NFSROOT command line parsingChuck Lever1-9/+23
Clean up: To reduce confusion, rename nfs_root_name as nfs_root_parms, as this buffer contains more than just the name of the remote server. Introduce documenting comments around nfs_root_setup(). Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-17NFS: Remove \t from mount debugging messageChuck Lever1-1/+1
During boot, a random character is displayed instead of a tab. Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-29SUNRPC: Don't truncate tail data unnecessarily in xdr_shrink_pagelenTrond Myklebust1-1/+10
If we have unused buffer space, then we should make use of that rather than unnecessarily truncating the message. Signed-off-by: Trond Myklebust <[email protected]>
2010-08-29sunrpc: simplify xdr_shrink_pagelen use of "copy"Benny Halevy1-4/+3
The "copy" variable value can be computed using the existing logic rather than repeating it. Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-29sunrpc: don't use the copy variable in nested blockBenny Halevy1-2/+1
to clean up the code "copy" will be set prior to the block hence it mustn't be used there. Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-29sunrpc: clean up xdr_shrink_pagelen use of temporary pointerBenny Halevy1-2/+1
char *p is used only as a shorthand for tail->iov_base + len in a nested block. Move it there. Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-29sunrpc: don't shorten buflen twice in xdr_shrink_pagelenBenny Halevy1-2/+1
On Jan. 14, 2009, 2:50 +0200, [email protected] wrote: > From: Andy Adamson <[email protected]> > > The buflen is reset for all cases at the end of xdr_shrink_pagelen. > The data left in the tail after xdr_read_pages is not processed when the > buflen is incorrectly set. Note that in this case we also lose (len - tail->iov_len) bytes from the buffered data in pages. Reported-by: Andy Adamson <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-08-29Linux 2.6.36-rc3Linus Torvalds1-1/+1
2010-08-29Merge branch 'for-linus' of ↵Linus Torvalds5-26/+50
git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: ohci: work around VIA and NEC PHY packet reception bug firewire: core: do not use del_timer_sync() in interrupt context firewire: net: fix unicast reception RCODE in failure paths firewire: sbp2: fix stall with "Unsolicited response" firewire: sbp2: fix memory leak in sbp2_cancel_orbs or at send error ieee1394: Adjust confusing if indentation
2010-08-29firewire: ohci: work around VIA and NEC PHY packet reception bugStefan Richter1-1/+9
VIA VT6306, VIA VT6308, and NEC OrangeLink controllers do not write packet event codes for received PHY packets (or perhaps write evt_no_status, hard to tell). Work around it by overwriting the packet's ACK by ack_complete, so that upper layers that listen to PHY packet reception get to see these packets. (Also tested: TI TSB82AA2, TI TSB43AB22/A, TI XIO2213A, Agere FW643, JMicron JMB381 --- these do not exhibit this bug.) Clemens proposed a quirks flag for that, IOW whitelist known misbehaving controllers for this workaround. Though to me it seems harmless enough to enable for all controllers. The log_ar_at_event() debug log will continue to show the original status from the DMA unit. Reported-by: Clemens Ladisch <[email protected]> (VT6308) Signed-off-by: Stefan Richter <[email protected]>
2010-08-28Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds15-72/+98
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: net/ipv4: Eliminate kstrdup memory leak net/caif/cfrfml.c: use asm/unaligned.h ax25: missplaced sock_put(sk) qlge: reset the chip before freeing the buffers l2tp: test for ethernet header in l2tp_eth_dev_recv() tcp: select(writefds) don't hang up when a peer close connection tcp: fix three tcp sysctls tuning tcp: Combat per-cpu skew in orphan tests. pxa168_eth: silence gcc warnings pxa168_eth: update call to phy_mii_ioctl() pxa168_eth: fix error handling in prope pxa168_eth: remove unneeded null check phylib: Fix race between returning phydev and calling adjust_link caif-driver: add HAS_DMA dependency 3c59x: Fix deadlock between boomerang_interrupt and boomerang_start_tx qlcnic: fix poll implementation netxen: fix poll implementation bridge: netfilter: fix a memory leak
2010-08-28Merge branch 'for-linus' of ↵Linus Torvalds13-581/+0
git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: Blackfin: bf52x/bf54x boards: drop unused nand page size Blackfin: punt duplicate SPORT MMR defines
2010-08-28Merge branch 'for-linus' of ↵Linus Torvalds5-4/+14
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: pcm: add more format names sound: oss: fix uninitialized spinlock ALSA: asihpi - Return hw error directly from oustream_write. ASoC: soc-core: fix debugfs_pop_time file permissions ALSA: hda - Add Sony VAIO quirk for ALC269
2010-08-28Merge branch 's5p-fixes-for-linus' of ↵Linus Torvalds14-62/+135
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung * 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: S5PV310: Fix on Secondary CPU startup ARM: S5PV310: Bug fix on uclk1 and sclk_pwm ARM: S5PV310: Fix missed uart clocks ARM: S5PV310: Should be clk_sclk_apll not clk_mout_apll ARM: S5PV310: Fix on PLL setting for S5PV310 ARM: S5PV310: Add CMU block for S5PV310 Clock ARM: S5PV310: Fix on typo irqs.h of S5PV310 ARM: S5PV310: Fix on default ZRELADDR of ARCH_S5PV310 ARM: S5PV310: Fix on GPIO base addresses ARM: SAMSUNG: Fix on build warning regarding VMALLOC_END type ARM: S5P: VMALLOC_END should be unsigned long
2010-08-28Merge branch 'for-linus' of git://git.infradead.org/users/eparis/notifyLinus Torvalds6-46/+74
* 'for-linus' of git://git.infradead.org/users/eparis/notify: fsnotify: drop two useless bools in the fnsotify main loop fsnotify: fix list walk order fanotify: Return EPERM when a process is not privileged fanotify: resize pid and reorder structure fanotify: drop duplicate pr_debug statement fanotify: flush outstanding perm requests on group destroy fsnotify: fix ignored mask handling between inode and vfsmount marks fanotify: add MAINTAINERS entry fsnotify: reset used_inode and used_vfsmount on each pass fanotify: do not dereference inode_mark when it is unset
2010-08-28Merge branch 'for-linus' of ↵Linus Torvalds6-12/+30
git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6: eCryptfs: Fix encrypted file name lookup regression ecryptfs: properly mark init functions fs/ecryptfs: Return -ENOMEM on memory allocation failure
2010-08-28Merge branch 'for-linus' of git://android.git.kernel.org/kernel/tegraLinus Torvalds2-3/+1
* 'for-linus' of git://android.git.kernel.org/kernel/tegra: arm: tegra: VMALLOC_END should be unsigned long arm: tegra: fix compilation of board-harmony.c
2010-08-28Merge branch 'drm-fixes' of ↵Linus Torvalds13-76/+95
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: vgaarb: Wrap vga_(get|put) in CONFIG_VGA_ARB drm/radeon/kms: add missing scratch update in dp_detect drm/modes: Fix CVT-R modeline generation drm: fix regression in drm locking since BKL removal. drm/radeon/kms: remove stray radeon_i2c_destroy drm: mm: fix range restricted allocations drm/nouveau: drop drm_global_mutex before sleeping in submission path drm: export drm_global_mutex for drivers to use drm/nv20: Don't use pushbuf calls on the original nv20. drm/nouveau: Fix TMDS on some DCB1.5 boards. drm/nouveau: Fix backlight control on PPC machines with an internal TMDS panel. drm/nv30: Apply modesetting to the correct slave encoder drm/nouveau: Use a helper function to match PCI device/subsystem IDs. drm/nv50: add dcb type 14 to enum to prevent compiler complaint
2010-08-28Merge branch 'lguest' of ↵Linus Torvalds3-13/+15
git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus * 'lguest' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: lguest: Odd Fixes lguest: clean up warnings in demonstration launcher.
2010-08-28Merge branch 'omap-fixes-for-linus' of ↵Linus Torvalds8-20/+20
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: OMAP3: PM: ensure IO wakeups are properly disabled omap: Fix omap_4430sdp_defconfig for make oldconfig omap: Use CONFIG_SMP for test_for_ipi and test_for_ltirq omap: Fix sev instruction usage for multi-omap OMAP3: Fix a cpu type check problem omap3: id: fix 3630 rev detection
2010-08-28Merge branch 'for-linus' of ↵Linus Torvalds14-107/+185
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: fix get_ticket_handler() error handling ceph: don't BUG on ENOMEM during mds reconnect ceph: ceph_mdsc_build_path() returns an ERR_PTR ceph: Fix warnings ceph: ceph_get_inode() returns an ERR_PTR ceph: initialize fields on new dentry_infos ceph: maintain i_head_snapc when any caps are dirty, not just for data ceph: fix osd request lru adjustment when sending request ceph: don't improperly set dir complete when holding EXCL cap mm: exporting account_page_dirty ceph: direct requests in snapped namespace based on nonsnap parent ceph: queue cap snap writeback for realm children on snap update ceph: include dirty xattrs state in snapped caps ceph: fix xattr cap writeback ceph: fix multiple mds session shutdown
2010-08-28Merge branch 'pm-fixes' of ↵Linus Torvalds1-5/+7
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: PM QoS: Fix inline documentation. PM QoS: Fix kzalloc() parameters swapped in pm_qos_power_open()
2010-08-28Merge branch 'for-2.6.36' of git://linux-nfs.org/~bfields/linuxLinus Torvalds3-24/+30
* 'for-2.6.36' of git://linux-nfs.org/~bfields/linux: nfsd: fix NULL dereference in nfsd_statfs() nfsd4: fix downgrade/lock logic nfsd4: typo fix in find_any_file nfsd4: bad BUG() in preprocess_stateid_op
2010-08-28Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6Linus Torvalds2-2/+3
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: Cannot allocate memory error on mount [CIFS] Eliminate unused variable warning
2010-08-28Alpha: Fix a missing comma in sys_osf_statfs()David Howells1-1/+1
Fix a comma that got accidentally deleted from sys_osf_statfs() leading to the following warning: arch/alpha/kernel/osf_sys.c: In function 'SYSC_osf_statfs': arch/alpha/kernel/osf_sys.c:255: error: syntax error before 'buffer' Signed-off-by: David Howells <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-08-28NOMMU: Stub out vm_get_page_prot() if there's no MMUDavid Howells1-0/+8
Stub out vm_get_page_prot() if there's no MMU. This was added by commit 804af2cf6e7a ("[AGPGART] remove private page protection map") and is used in commit c07fbfd17e61 ("fbmem: VM_IO set, but not propagated") in the fbmem video driver, but the function doesn't exist on NOMMU, resulting in an undefined symbol at link time. Signed-off-by: David Howells <[email protected]> Reviewed-by: Konrad Rzeszutek Wilk <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-08-28Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bpLinus Torvalds2-17/+10
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: amd64_edac: Do not report error overflow as a separate error MCE, AMD: Limit MCE decoding to current families for now