kernel-ark/fs/nfs
Trond Myklebust 65e4308d25 [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates
When the client performs an exclusive create and opens the file for writing,
a Netapp filer will first create the file using the mode 01777. It does this
since an NFSv3/v4 exclusive create cannot immediately set the mode bits.
The 01777 mode then gets put into the inode->i_mode. After the file creation
is successful, we then do a setattr to change the mode to the correct value
(as per the NFS spec).

The problem is that nfs_refresh_inode() no longer updates inode->i_mode, so
the latter retains the 01777 mode. A bit later, the VFS notices this, and calls
remove_suid(). This of course now resets the file mode to inode->i_mode & 0777.
Hey presto, the file mode on the server is now magically changed to 0777. Duh...

Fixes http://bugzilla.linux-nfs.org/show_bug.cgi?id=32

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-16 09:30:58 -07:00
..
callback_proc.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
callback_xdr.c [PATCH] NFSv4: Fix an Oops in the callback code. 2005-06-22 16:07:29 -04:00
callback.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
callback.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
delegation.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
delegation.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dir.c [PATCH] NFS: Clean up readdir changes. 2005-06-22 16:07:34 -04:00
direct.c [PATCH] Remove f_error field from struct file 2005-06-23 09:45:33 -07:00
file.c [PATCH] NFS: Ensure that fstat() always returns the correct mtime 2005-06-22 16:07:37 -04:00
idmap.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
inode.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
Makefile [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
mount_clnt.c [PATCH] RPC: Make rpc_create_client() destroy the transport on failure. 2005-06-22 16:07:03 -04:00
nfs2xdr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfs3acl.c [PATCH] really remove xattr_acl.h 2005-06-28 21:20:31 -07:00
nfs3proc.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
nfs3xdr.c [PATCH] fix nfsacl pointer arithmetic and pg_class initialization bugs 2005-06-22 16:07:27 -04:00
nfs4_fs.h [PATCH] NFSv4: Clean up nfs4 lock state accounting 2005-06-22 16:07:42 -04:00
nfs4proc.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
nfs4renewd.c [PATCH] NFS: Header file cleanup... 2005-06-22 16:07:06 -04:00
nfs4state.c [PATCH] NFSv4: Clean up nfs4 lock state accounting 2005-06-22 16:07:42 -04:00
nfs4xdr.c [PATCH] NFS: Add debugging code to NFSv4 readdir 2005-06-22 16:07:44 -04:00
nfsroot.c [PATCH] NFS: Add support for NFSv3 ACLs 2005-06-22 16:07:24 -04:00
pagelist.c [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00
proc.c [PATCH] NFS: Ensure we always update inode->i_mode when doing O_EXCL creates 2005-08-16 09:30:58 -07:00
read.c [PATCH] NFS: Make searching and waiting on busy writeback requests more efficient. 2005-06-22 16:07:39 -04:00
symlink.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unlink.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
write.c [PATCH] NFS: Replace nfs_page insertion sort with a radix sort 2005-06-22 16:07:39 -04:00