diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-07 09:30:08 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:36:11 -0400 |
commit | 79d25767583e4e086f8309bfd1f502660a64fe7f (patch) | |
tree | f13414f324d859f82c604bb4027a4aab19bed909 /fs/qnx4/namei.c | |
parent | d5aacad548db1ff547adf35d0a77eb2a8ed4fe14 (diff) |
Sanitize qnx4 fsync handling
* have directory operations use mark_buffer_dirty_inode(),
so that sync_mapping_buffers() would get those.
* make qnx4_write_inode() honour its last argument.
* get rid of insane copies of very ancient "walk the indirect blocks"
in qnx4/fsync - they never matched the actual fs layout and, fortunately,
never'd been called. Again, all this junk is not needed; ->fsync()
should just do sync_mapping_buffers + sync_inode (and if we implement
block allocation for qnx4, we'll need to use mark_buffer_dirty_inode()
for extent blocks)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/qnx4/namei.c')
-rw-r--r-- | fs/qnx4/namei.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/qnx4/namei.c b/fs/qnx4/namei.c index 775eed3a4085..123270c53760 100644 --- a/fs/qnx4/namei.c +++ b/fs/qnx4/namei.c | |||
@@ -187,7 +187,7 @@ int qnx4_rmdir(struct inode *dir, struct dentry *dentry) | |||
187 | de->di_status = 0; | 187 | de->di_status = 0; |
188 | memset(de->di_fname, 0, sizeof de->di_fname); | 188 | memset(de->di_fname, 0, sizeof de->di_fname); |
189 | de->di_mode = 0; | 189 | de->di_mode = 0; |
190 | mark_buffer_dirty(bh); | 190 | mark_buffer_dirty_inode(bh, dir); |
191 | clear_nlink(inode); | 191 | clear_nlink(inode); |
192 | mark_inode_dirty(inode); | 192 | mark_inode_dirty(inode); |
193 | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC; | 193 | inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC; |
@@ -232,7 +232,7 @@ int qnx4_unlink(struct inode *dir, struct dentry *dentry) | |||
232 | de->di_status = 0; | 232 | de->di_status = 0; |
233 | memset(de->di_fname, 0, sizeof de->di_fname); | 233 | memset(de->di_fname, 0, sizeof de->di_fname); |
234 | de->di_mode = 0; | 234 | de->di_mode = 0; |
235 | mark_buffer_dirty(bh); | 235 | mark_buffer_dirty_inode(bh, dir); |
236 | dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC; | 236 | dir->i_ctime = dir->i_mtime = CURRENT_TIME_SEC; |
237 | mark_inode_dirty(dir); | 237 | mark_inode_dirty(dir); |
238 | inode->i_ctime = dir->i_ctime; | 238 | inode->i_ctime = dir->i_ctime; |