linux-IllusionX/fs
Jeff Layton e1181ee657 vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)
When a file is opened with O_TRUNC, the truncate processing is handled
by handle_truncate(). This function however doesn't receive any info
about the newly instantiated filp, and therefore can't pass that info
along so that the setattr can use it.

This makes NFSv4 misbehave. The client does an open and gets a valid
stateid, and then doesn't use that stateid on the subsequent truncate.
It uses the zero-stateid instead. Most servers ignore this fact and
just do the truncate anyway, but some don't like it (notably, RHEL4).

It seems more correct that since we have a fully instantiated file at
the time that handle_truncate is called, that we pass that along so
that the truncate operation can properly use it.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2011-01-12 20:06:59 -05:00
..
9p switch 9p 2011-01-12 20:03:43 -05:00
adfs
affs switch affs 2011-01-12 20:03:42 -05:00
afs switch afs 2011-01-12 20:04:20 -05:00
autofs4
befs
bfs
btrfs
cachefiles
ceph
cifs
coda take coda-private headers out of include/linux 2011-01-12 20:02:48 -05:00
configfs switch configfs 2011-01-12 20:03:12 -05:00
cramfs
debugfs
devpts
dlm
ecryptfs sanitize ecryptfs ->mount() 2011-01-12 20:04:37 -05:00
efs
exofs
exportfs
ext2
ext3
ext4
fat
freevxfs
fscache
fuse
gfs2
hfs
hfsplus
hostfs switch hostfs 2011-01-12 20:03:42 -05:00
hpfs
hppfs
hugetlbfs
isofs
jbd
jbd2
jffs2
jfs
lockd
logfs
minix
ncpfs move internal-only parts of ncpfs headers to fs/ncpfs 2011-01-12 20:03:43 -05:00
nfs
nfs_common
nfsd
nilfs2
nls
notify
ntfs
ocfs2
omfs
openpromfs
partitions
proc
qnx4
quota
ramfs
reiserfs
romfs
squashfs
sysfs
sysv
ubifs
udf
ufs
xfs
aio.c
anon_inodes.c pass default dentry_operations to mount_pseudo() 2011-01-12 20:03:43 -05:00
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c pass default dentry_operations to mount_pseudo() 2011-01-12 20:03:43 -05:00
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
dcache.c fs: fix kernel-doc for dcache::prepend_path 2011-01-12 20:06:57 -05:00
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fifo.c
file.c
file_table.c
filesystems.c
fs-writeback.c
fs_struct.c
generic_acl.c
inode.c
internal.h
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c pass default dentry_operations to mount_pseudo() 2011-01-12 20:03:43 -05:00
locks.c
Makefile
mbcache.c
mpage.c
namei.c vfs: pass struct file to do_truncate on O_TRUNC opens (try #2) 2011-01-12 20:06:59 -05:00
namespace.c
nfsctl.c
no-block.c
open.c
pipe.c pass default dentry_operations to mount_pseudo() 2011-01-12 20:03:43 -05:00
pnode.c
pnode.h
posix_acl.c
read_write.c fix signedness mess in rw_verify_area() on 64bit architectures 2011-01-12 20:06:58 -05:00
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
statfs.c
super.c
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c