summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorAndrey V. Savochkin <saw@saw.sw.com.sg>2004-09-16 22:03:20 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-09-16 22:03:20 -0700
commit73441a0edd8030afdc0c455272585fb7f4fbeaa0 (patch)
tree238825f4ecc3db36e37b459dd66479a2b46fe18b /Documentation
parent0855040e79e53064f73b5c34fb7b1ccd196f9b52 (diff)
[PATCH] fix for fsync ignoring writing errors
Currently metadata writing errors are ignored and not returned from sys_fsync on ext2 and ext3 filesystems. That is, at least ext2 and ext3. Both ext2 and ext3 resort to sync_inode() in their ->sync_inode method, which in turn calls ->write_inode. ->write_inode method has void type, and any IO errors happening inside are lost. Make ->write_inode return the error code? Signed-off-by: Andrey Savochkin <saw@saw.sw.com.sg> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/filesystems/Locking2
-rw-r--r--Documentation/filesystems/vfs.txt2
2 files changed, 2 insertions, 2 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 1c23acfb6041..f1c2cee131b4 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -90,7 +90,7 @@ prototypes:
void (*destroy_inode)(struct inode *);
void (*read_inode) (struct inode *);
void (*dirty_inode) (struct inode *);
- void (*write_inode) (struct inode *, int);
+ int (*write_inode) (struct inode *, int);
void (*put_inode) (struct inode *);
void (*drop_inode) (struct inode *);
void (*delete_inode) (struct inode *);
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index 9557ea1846d2..5be10c915614 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -176,7 +176,7 @@ filesystem. As of kernel 2.1.99, the following members are defined:
struct super_operations {
void (*read_inode) (struct inode *);
- void (*write_inode) (struct inode *, int);
+ int (*write_inode) (struct inode *, int);
void (*put_inode) (struct inode *);
void (*drop_inode) (struct inode *);
void (*delete_inode) (struct inode *);