tmp_suning_uos_patched/fs/nfs
NeilBrown 44ed3556ba NFS4ERR_FILE_OPEN handling in Linux/NFS
NFS4ERR_FILE_OPEN is return by the server when an operation cannot be
performed because the file is currently open and local (to the server)
semantics prohibit the operation while the file is open.
A typical case is a RENAME operation on an MS-Windows platform, which
prevents rename while the file is open.

While it is possible that such a condition is transitory, it is also
very possible that the file will be held open for an extended period
of time thus preventing the operation.

The current behaviour of Linux/NFS is to retry the operation
indefinitely.  This is not appropriate - we do not expect a rename to
take an arbitrary amount of time to complete.

Rather, and error should be returned.  The most obvious error code
would be EBUSY, which is a legal at least for 'rename' and 'unlink',
and accurately captures the reason for the error.

This patch allows a few retries until about 2 seconds have elapsed,
then returns EBUSY.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2009-12-03 21:26:36 -05:00
..
cache_lib.c
cache_lib.h
callback_proc.c
callback_xdr.c trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
callback.c The rpc server does not require that service threads take the BKL. 2009-12-03 15:58:33 -05:00
callback.h
client.c nfs: Avoid overrun when copying client IP address string 2009-10-06 15:42:18 -04:00
delegation.c
delegation.h
dir.c nfs: clean up sillyrenaming in nfs_rename() 2009-12-03 15:58:56 -05:00
direct.c nfs: Panic when commit fails 2009-10-23 14:16:30 -04:00
dns_resolve.c
dns_resolve.h
file.c const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
fscache-index.c
fscache.c FS-Cache: Handle pages pending storage that get evicted under OOM conditions 2009-11-19 18:11:35 +00:00
fscache.h NFS: Propagate 'fsc' mount option through automounts 2009-09-23 14:36:39 -04:00
getroot.c
idmap.c
inode.c truncate: use new helpers 2009-09-24 08:41:47 -04:00
internal.h NFS: Allow the "nfs" file system type to support NFSv4 2009-09-08 19:50:03 -04:00
iostat.h
Kconfig
Makefile
mount_clnt.c
namespace.c
nfs2xdr.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs3acl.c
nfs3proc.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs3xdr.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs4_fs.h
nfs4namespace.c NFSv4: Fix the referral mount code 2009-10-06 15:42:20 -04:00
nfs4proc.c NFS4ERR_FILE_OPEN handling in Linux/NFS 2009-12-03 21:26:36 -05:00
nfs4renewd.c NFSv4: Kill nfs4_renewd_prepare_shutdown() 2009-10-08 11:50:55 -04:00
nfs4state.c NFSv4.1: Handle NFSv4.1 session errors in the lock recovery code 2009-12-03 15:58:56 -05:00
nfs4xdr.c NFSv4: Fix a bug when the server returns NFS4ERR_RESOURCE 2009-10-23 14:46:42 -04:00
nfsroot.c
pagelist.c
proc.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
read.c
super.c NFS: Revert default r/wsize behavior 2009-12-03 15:58:56 -05:00
symlink.c
sysctl.c
unlink.c
write.c writeback: get rid of wbc->for_writepages 2009-09-16 15:16:18 +02:00