git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nfsd: minor nfsd_vfs_write cleanup
[safe/jmp/linux-2.6]
/
fs
/
nfsd
/
vfs.c
diff --git
a/fs/nfsd/vfs.c
b/fs/nfsd/vfs.c
index
6ad76a4
..
1cf7061
100644
(file)
--- a/
fs/nfsd/vfs.c
+++ b/
fs/nfsd/vfs.c
@@
-1053,19
+1053,20
@@
nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
oldfs = get_fs(); set_fs(KERNEL_DS);
host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset);
set_fs(oldfs);
oldfs = get_fs(); set_fs(KERNEL_DS);
host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &offset);
set_fs(oldfs);
- if (host_err
>= 0) {
-
*cnt = host_
err;
-
nfsdstats.io_write +
= host_err;
-
fsnotify_modify(file->f_path.dentry)
;
- }
+ if (host_err
< 0)
+
goto out_nfs
err;
+
*cnt
= host_err;
+
nfsdstats.io_write += host_err
;
+ fsnotify_modify(file->f_path.dentry);
/* clear setuid/setgid flag after write */
/* clear setuid/setgid flag after write */
- if (
host_err >= 0 && (inode->i_mode & (S_ISUID | S_ISGID)
))
+ if (
inode->i_mode & (S_ISUID | S_ISGID
))
kill_suid(dentry);
kill_suid(dentry);
- if (
host_err >= 0 &&
stable && use_wgather)
+ if (stable && use_wgather)
host_err = wait_for_concurrent_writes(file);
host_err = wait_for_concurrent_writes(file);
+out_nfserr:
dprintk("nfsd: write complete host_err=%d\n", host_err);
if (host_err >= 0)
err = 0;
dprintk("nfsd: write complete host_err=%d\n", host_err);
if (host_err >= 0)
err = 0;