[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>
This commit is contained in:
committed by
Linus Torvalds
parent
280dedb8d6
commit
45778ca819
16
fs/open.c
16
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);
|
||||
|
Reference in New Issue
Block a user