diff options
author | Christoph Lameter <christoph@graphe.net> | 2005-06-23 00:10:17 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 09:45:33 -0700 |
commit | 45778ca819accab1a4a3378b3566cab0f189164f (patch) | |
tree | 9214491346c8d2d91eb1a11cb6c2e6a9387e4290 /fs/open.c | |
parent | 280dedb8d64ccfe1166ae03d3b254fc3b65de6a5 (diff) | |
download | lwn-45778ca819accab1a4a3378b3566cab0f189164f.tar.gz lwn-45778ca819accab1a4a3378b3566cab0f189164f.zip |
[PATCH] Remove f_error field from struct file
The following patch removes the f_error field and all checks of f_error.
Trond said:
f_error was introduced for NFS, and made sense when we were guaranteed
always to have a file pointer around when write errors occurred. Since
then, we have (for various reasons) had to introduce the nfs_open_context in
order to track the file read/write state, and it made sense to move our
f_error tracking there too.
Signed-off-by: Christoph Lameter <christoph@lameter.com>
Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/open.c')
-rw-r--r-- | fs/open.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/fs/open.c b/fs/open.c index 2ebb72c1a876..5dd411b084bf 100644 --- a/fs/open.c +++ b/fs/open.c @@ -981,23 +981,15 @@ asmlinkage long sys_creat(const char __user * pathname, int mode) */ int filp_close(struct file *filp, fl_owner_t id) { - int retval; - - /* Report and clear outstanding errors */ - retval = filp->f_error; - if (retval) - filp->f_error = 0; + int retval = 0; if (!file_count(filp)) { printk(KERN_ERR "VFS: Close: file count is 0\n"); - return retval; + return 0; } - if (filp->f_op && filp->f_op->flush) { - int err = filp->f_op->flush(filp); - if (!retval) - retval = err; - } + if (filp->f_op && filp->f_op->flush) + retval = filp->f_op->flush(filp); dnotify_flush(filp, id); locks_remove_posix(filp, id); |