kernel-fxtec-pro1x/fs/nfs
Chuck Lever 4f390c152b NFS: Fix double d_drop in nfs_instantiate() error path
If the LOOKUP or GETATTR in nfs_instantiate fail, nfs_instantiate will do a
d_drop before returning.  But some callers already do a d_drop in the case
of an error return.  Make certain we do only one d_drop in all error paths.

This issue was introduced because over time, the symlink proc API diverged
slightly from the create/mkdir/mknod proc API.  To prevent other coding
mistakes of this type, change the symlink proc API to be more like
create/mkdir/mknod and move the nfs_instantiate call into the symlink proc
routines so it is used in exactly the same way for create, mkdir, mknod,
and symlink.

Test plan:
Connectathon, all versions of NFS.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2006-09-22 23:24:52 -04:00
..
callback.c NFS: Generalise the nfs_client structure 2006-09-22 23:24:33 -04:00
callback.h NFS: Fix NFS4 callback up/down prototypes 2006-09-22 23:24:31 -04:00
callback_proc.c NFS: Generalise the nfs_client structure 2006-09-22 23:24:33 -04:00
callback_xdr.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
client.c NFS: Convert NFS client to use new rpc_create() API 2006-09-22 23:24:50 -04:00
delegation.c NFS: Generalise the nfs_client structure 2006-09-22 23:24:33 -04:00
delegation.h NFS: Rename struct nfs4_client to struct nfs_client 2006-09-22 23:24:31 -04:00
dir.c NFS: Fix double d_drop in nfs_instantiate() error path 2006-09-22 23:24:52 -04:00
direct.c [PATCH] NFS: large non-page-aligned direct I/O clobbers memory 2006-09-08 10:22:51 -07:00
file.c NFS: Make better use of inode* dereferencing macros 2006-09-22 23:24:35 -04:00
getroot.c NFS: Secure the roots of the NFS subtrees in a shared superblock 2006-09-22 23:24:38 -04:00
idmap.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
inode.c NFS: Add server and volume lists to /proc 2006-09-22 23:24:37 -04:00
internal.h NFS: Add server and volume lists to /proc 2006-09-22 23:24:37 -04:00
iostat.h NFSv4: Fix an oops in nfs4_fill_super 2006-03-20 13:44:48 -05:00
Makefile NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
mount_clnt.c SUNRPC: remove extraneous header inclusions 2006-09-22 23:24:47 -04:00
namespace.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs2xdr.c Fix NFS2 compile error 2006-06-25 12:30:33 -07:00
nfs3acl.c NFSv3: Client-side nfsacl caching fix 2006-06-09 09:34:11 -04:00
nfs3proc.c NFS: Fix double d_drop in nfs_instantiate() error path 2006-09-22 23:24:52 -04:00
nfs3xdr.c NFS: Split fs/nfs/inode.c 2006-06-09 09:34:33 -04:00
nfs4_fs.h NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4namespace.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4proc.c NFS: Fix double d_drop in nfs_instantiate() error path 2006-09-22 23:24:52 -04:00
nfs4renewd.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4state.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4xdr.c NFS: Rename nfs_server::nfs4_state 2006-09-22 23:24:32 -04:00
nfsroot.c
pagelist.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
proc.c NFS: Fix double d_drop in nfs_instantiate() error path 2006-09-22 23:24:52 -04:00
read.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
super.c NFS: Ensure NFSv2/v3 mounts respect the NFS_MOUNT_SECFLAVOUR flag 2006-09-22 23:24:38 -04:00
symlink.c nfs: remove nfs_put_link() 2006-06-25 06:39:35 -04:00
sysctl.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
unlink.c
write.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00