Merge branch 'write_inode2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6

* 'write_inode2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
pass writeback_control to ->write_inode
make sure data is on disk before calling ->write_inode

+123 -107
+1 -1
fs/adfs/adfs.h
··· 121 122 /* Inode stuff */ 123 struct inode *adfs_iget(struct super_block *sb, struct object_info *obj); 124 - int adfs_write_inode(struct inode *inode,int unused); 125 int adfs_notify_change(struct dentry *dentry, struct iattr *attr); 126 127 /* map.c */
··· 121 122 /* Inode stuff */ 123 struct inode *adfs_iget(struct super_block *sb, struct object_info *obj); 124 + int adfs_write_inode(struct inode *inode, struct writeback_control *wbc); 125 int adfs_notify_change(struct dentry *dentry, struct iattr *attr); 126 127 /* map.c */
+3 -2
fs/adfs/inode.c
··· 9 */ 10 #include <linux/smp_lock.h> 11 #include <linux/buffer_head.h> 12 #include "adfs.h" 13 14 /* ··· 361 * The adfs-specific inode data has already been updated by 362 * adfs_notify_change() 363 */ 364 - int adfs_write_inode(struct inode *inode, int wait) 365 { 366 struct super_block *sb = inode->i_sb; 367 struct object_info obj; ··· 376 obj.attr = ADFS_I(inode)->attr; 377 obj.size = inode->i_size; 378 379 - ret = adfs_dir_update(sb, &obj, wait); 380 unlock_kernel(); 381 return ret; 382 }
··· 9 */ 10 #include <linux/smp_lock.h> 11 #include <linux/buffer_head.h> 12 + #include <linux/writeback.h> 13 #include "adfs.h" 14 15 /* ··· 360 * The adfs-specific inode data has already been updated by 361 * adfs_notify_change() 362 */ 363 + int adfs_write_inode(struct inode *inode, struct writeback_control *wbc) 364 { 365 struct super_block *sb = inode->i_sb; 366 struct object_info obj; ··· 375 obj.attr = ADFS_I(inode)->attr; 376 obj.size = inode->i_size; 377 378 + ret = adfs_dir_update(sb, &obj, wbc->sync_mode == WB_SYNC_ALL); 379 unlock_kernel(); 380 return ret; 381 }
+2 -1
fs/affs/affs.h
··· 175 extern void affs_clear_inode(struct inode *inode); 176 extern struct inode *affs_iget(struct super_block *sb, 177 unsigned long ino); 178 - extern int affs_write_inode(struct inode *inode, int); 179 extern int affs_add_entry(struct inode *dir, struct inode *inode, struct dentry *dentry, s32 type); 180 181 /* file.c */
··· 175 extern void affs_clear_inode(struct inode *inode); 176 extern struct inode *affs_iget(struct super_block *sb, 177 unsigned long ino); 178 + extern int affs_write_inode(struct inode *inode, 179 + struct writeback_control *wbc); 180 extern int affs_add_entry(struct inode *dir, struct inode *inode, struct dentry *dentry, s32 type); 181 182 /* file.c */
+1 -1
fs/affs/inode.c
··· 166 } 167 168 int 169 - affs_write_inode(struct inode *inode, int unused) 170 { 171 struct super_block *sb = inode->i_sb; 172 struct buffer_head *bh;
··· 166 } 167 168 int 169 + affs_write_inode(struct inode *inode, struct writeback_control *wbc) 170 { 171 struct super_block *sb = inode->i_sb; 172 struct buffer_head *bh;
-1
fs/afs/internal.h
··· 733 struct page *page, void *fsdata); 734 extern int afs_writepage(struct page *, struct writeback_control *); 735 extern int afs_writepages(struct address_space *, struct writeback_control *); 736 - extern int afs_write_inode(struct inode *, int); 737 extern void afs_pages_written_back(struct afs_vnode *, struct afs_call *); 738 extern ssize_t afs_file_write(struct kiocb *, const struct iovec *, 739 unsigned long, loff_t);
··· 733 struct page *page, void *fsdata); 734 extern int afs_writepage(struct page *, struct writeback_control *); 735 extern int afs_writepages(struct address_space *, struct writeback_control *); 736 extern void afs_pages_written_back(struct afs_vnode *, struct afs_call *); 737 extern ssize_t afs_file_write(struct kiocb *, const struct iovec *, 738 unsigned long, loff_t);
-1
fs/afs/super.c
··· 48 static const struct super_operations afs_super_ops = { 49 .statfs = afs_statfs, 50 .alloc_inode = afs_alloc_inode, 51 - .write_inode = afs_write_inode, 52 .destroy_inode = afs_destroy_inode, 53 .clear_inode = afs_clear_inode, 54 .put_super = afs_put_super,
··· 48 static const struct super_operations afs_super_ops = { 49 .statfs = afs_statfs, 50 .alloc_inode = afs_alloc_inode, 51 .destroy_inode = afs_destroy_inode, 52 .clear_inode = afs_clear_inode, 53 .put_super = afs_put_super,
-21
fs/afs/write.c
··· 585 } 586 587 /* 588 - * write an inode back 589 - */ 590 - int afs_write_inode(struct inode *inode, int sync) 591 - { 592 - struct afs_vnode *vnode = AFS_FS_I(inode); 593 - int ret; 594 - 595 - _enter("{%x:%u},", vnode->fid.vid, vnode->fid.vnode); 596 - 597 - ret = 0; 598 - if (sync) { 599 - ret = filemap_fdatawait(inode->i_mapping); 600 - if (ret < 0) 601 - __mark_inode_dirty(inode, I_DIRTY_DATASYNC); 602 - } 603 - 604 - _leave(" = %d", ret); 605 - return ret; 606 - } 607 - 608 - /* 609 * completion of write to server 610 */ 611 void afs_pages_written_back(struct afs_vnode *vnode, struct afs_call *call)
··· 585 } 586 587 /* 588 * completion of write to server 589 */ 590 void afs_pages_written_back(struct afs_vnode *vnode, struct afs_call *call)
+3 -2
fs/bfs/inode.c
··· 15 #include <linux/smp_lock.h> 16 #include <linux/buffer_head.h> 17 #include <linux/vfs.h> 18 #include <asm/uaccess.h> 19 #include "bfs.h" 20 ··· 99 return ERR_PTR(-EIO); 100 } 101 102 - static int bfs_write_inode(struct inode *inode, int wait) 103 { 104 struct bfs_sb_info *info = BFS_SB(inode->i_sb); 105 unsigned int ino = (u16)inode->i_ino; ··· 148 di->i_eoffset = cpu_to_le32(i_sblock * BFS_BSIZE + inode->i_size - 1); 149 150 mark_buffer_dirty(bh); 151 - if (wait) { 152 sync_dirty_buffer(bh); 153 if (buffer_req(bh) && !buffer_uptodate(bh)) 154 err = -EIO;
··· 15 #include <linux/smp_lock.h> 16 #include <linux/buffer_head.h> 17 #include <linux/vfs.h> 18 + #include <linux/writeback.h> 19 #include <asm/uaccess.h> 20 #include "bfs.h" 21 ··· 98 return ERR_PTR(-EIO); 99 } 100 101 + static int bfs_write_inode(struct inode *inode, struct writeback_control *wbc) 102 { 103 struct bfs_sb_info *info = BFS_SB(inode->i_sb); 104 unsigned int ino = (u16)inode->i_ino; ··· 147 di->i_eoffset = cpu_to_le32(i_sblock * BFS_BSIZE + inode->i_size - 1); 148 149 mark_buffer_dirty(bh); 150 + if (wbc->sync_mode == WB_SYNC_ALL) { 151 sync_dirty_buffer(bh); 152 if (buffer_req(bh) && !buffer_uptodate(bh)) 153 err = -EIO;
+1 -1
fs/btrfs/ctree.h
··· 2326 int btrfs_readpage(struct file *file, struct page *page); 2327 void btrfs_delete_inode(struct inode *inode); 2328 void btrfs_put_inode(struct inode *inode); 2329 - int btrfs_write_inode(struct inode *inode, int wait); 2330 void btrfs_dirty_inode(struct inode *inode); 2331 struct inode *btrfs_alloc_inode(struct super_block *sb); 2332 void btrfs_destroy_inode(struct inode *inode);
··· 2326 int btrfs_readpage(struct file *file, struct page *page); 2327 void btrfs_delete_inode(struct inode *inode); 2328 void btrfs_put_inode(struct inode *inode); 2329 + int btrfs_write_inode(struct inode *inode, struct writeback_control *wbc); 2330 void btrfs_dirty_inode(struct inode *inode); 2331 struct inode *btrfs_alloc_inode(struct super_block *sb); 2332 void btrfs_destroy_inode(struct inode *inode);
+2 -2
fs/btrfs/inode.c
··· 3968 return ret; 3969 } 3970 3971 - int btrfs_write_inode(struct inode *inode, int wait) 3972 { 3973 struct btrfs_root *root = BTRFS_I(inode)->root; 3974 struct btrfs_trans_handle *trans; ··· 3977 if (root->fs_info->btree_inode == inode) 3978 return 0; 3979 3980 - if (wait) { 3981 trans = btrfs_join_transaction(root, 1); 3982 btrfs_set_trans_block_group(trans, inode); 3983 ret = btrfs_commit_transaction(trans, root);
··· 3968 return ret; 3969 } 3970 3971 + int btrfs_write_inode(struct inode *inode, struct writeback_control *wbc) 3972 { 3973 struct btrfs_root *root = BTRFS_I(inode)->root; 3974 struct btrfs_trans_handle *trans; ··· 3977 if (root->fs_info->btree_inode == inode) 3978 return 0; 3979 3980 + if (wbc->sync_mode == WB_SYNC_ALL) { 3981 trans = btrfs_join_transaction(root, 1); 3982 btrfs_set_trans_block_group(trans, inode); 3983 ret = btrfs_commit_transaction(trans, root);
+1 -1
fs/exofs/exofs.h
··· 261 struct page **pagep, void **fsdata); 262 extern struct inode *exofs_iget(struct super_block *, unsigned long); 263 struct inode *exofs_new_inode(struct inode *, int); 264 - extern int exofs_write_inode(struct inode *, int); 265 extern void exofs_delete_inode(struct inode *); 266 267 /* dir.c: */
··· 261 struct page **pagep, void **fsdata); 262 extern struct inode *exofs_iget(struct super_block *, unsigned long); 263 struct inode *exofs_new_inode(struct inode *, int); 264 + extern int exofs_write_inode(struct inode *, struct writeback_control *wbc); 265 extern void exofs_delete_inode(struct inode *); 266 267 /* dir.c: */
+2 -2
fs/exofs/inode.c
··· 1280 return ret; 1281 } 1282 1283 - int exofs_write_inode(struct inode *inode, int wait) 1284 { 1285 - return exofs_update_inode(inode, wait); 1286 } 1287 1288 /*
··· 1280 return ret; 1281 } 1282 1283 + int exofs_write_inode(struct inode *inode, struct writeback_control *wbc) 1284 { 1285 + return exofs_update_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 1286 } 1287 1288 /*
+1 -1
fs/ext2/ext2.h
··· 118 119 /* inode.c */ 120 extern struct inode *ext2_iget (struct super_block *, unsigned long); 121 - extern int ext2_write_inode (struct inode *, int); 122 extern void ext2_delete_inode (struct inode *); 123 extern int ext2_sync_inode (struct inode *); 124 extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int);
··· 118 119 /* inode.c */ 120 extern struct inode *ext2_iget (struct super_block *, unsigned long); 121 + extern int ext2_write_inode (struct inode *, struct writeback_control *); 122 extern void ext2_delete_inode (struct inode *); 123 extern int ext2_sync_inode (struct inode *); 124 extern int ext2_get_block(struct inode *, sector_t, struct buffer_head *, int);
+9 -2
fs/ext2/inode.c
··· 41 MODULE_DESCRIPTION("Second Extended Filesystem"); 42 MODULE_LICENSE("GPL"); 43 44 /* 45 * Test whether an inode is a fast symlink. 46 */ ··· 66 goto no_delete; 67 EXT2_I(inode)->i_dtime = get_seconds(); 68 mark_inode_dirty(inode); 69 - ext2_write_inode(inode, inode_needs_sync(inode)); 70 71 inode->i_size = 0; 72 if (inode->i_blocks) ··· 1337 return ERR_PTR(ret); 1338 } 1339 1340 - int ext2_write_inode(struct inode *inode, int do_sync) 1341 { 1342 struct ext2_inode_info *ei = EXT2_I(inode); 1343 struct super_block *sb = inode->i_sb; ··· 1440 ei->i_state &= ~EXT2_STATE_NEW; 1441 brelse (bh); 1442 return err; 1443 } 1444 1445 int ext2_sync_inode(struct inode *inode)
··· 41 MODULE_DESCRIPTION("Second Extended Filesystem"); 42 MODULE_LICENSE("GPL"); 43 44 + static int __ext2_write_inode(struct inode *inode, int do_sync); 45 + 46 /* 47 * Test whether an inode is a fast symlink. 48 */ ··· 64 goto no_delete; 65 EXT2_I(inode)->i_dtime = get_seconds(); 66 mark_inode_dirty(inode); 67 + __ext2_write_inode(inode, inode_needs_sync(inode)); 68 69 inode->i_size = 0; 70 if (inode->i_blocks) ··· 1335 return ERR_PTR(ret); 1336 } 1337 1338 + static int __ext2_write_inode(struct inode *inode, int do_sync) 1339 { 1340 struct ext2_inode_info *ei = EXT2_I(inode); 1341 struct super_block *sb = inode->i_sb; ··· 1438 ei->i_state &= ~EXT2_STATE_NEW; 1439 brelse (bh); 1440 return err; 1441 + } 1442 + 1443 + int ext2_write_inode(struct inode *inode, struct writeback_control *wbc) 1444 + { 1445 + return __ext2_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 1446 } 1447 1448 int ext2_sync_inode(struct inode *inode)
+2 -2
fs/ext3/inode.c
··· 3096 * `stuff()' is running, and the new i_size will be lost. Plus the inode 3097 * will no longer be on the superblock's dirty inode list. 3098 */ 3099 - int ext3_write_inode(struct inode *inode, int wait) 3100 { 3101 if (current->flags & PF_MEMALLOC) 3102 return 0; ··· 3107 return -EIO; 3108 } 3109 3110 - if (!wait) 3111 return 0; 3112 3113 return ext3_force_commit(inode->i_sb);
··· 3096 * `stuff()' is running, and the new i_size will be lost. Plus the inode 3097 * will no longer be on the superblock's dirty inode list. 3098 */ 3099 + int ext3_write_inode(struct inode *inode, struct writeback_control *wbc) 3100 { 3101 if (current->flags & PF_MEMALLOC) 3102 return 0; ··· 3107 return -EIO; 3108 } 3109 3110 + if (wbc->sync_mode != WB_SYNC_ALL) 3111 return 0; 3112 3113 return ext3_force_commit(inode->i_sb);
+1 -1
fs/ext4/ext4.h
··· 1446 struct buffer_head *bh_result, int create); 1447 1448 extern struct inode *ext4_iget(struct super_block *, unsigned long); 1449 - extern int ext4_write_inode(struct inode *, int); 1450 extern int ext4_setattr(struct dentry *, struct iattr *); 1451 extern int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry, 1452 struct kstat *stat);
··· 1446 struct buffer_head *bh_result, int create); 1447 1448 extern struct inode *ext4_iget(struct super_block *, unsigned long); 1449 + extern int ext4_write_inode(struct inode *, struct writeback_control *); 1450 extern int ext4_setattr(struct dentry *, struct iattr *); 1451 extern int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry, 1452 struct kstat *stat);
+3 -3
fs/ext4/inode.c
··· 5348 * `stuff()' is running, and the new i_size will be lost. Plus the inode 5349 * will no longer be on the superblock's dirty inode list. 5350 */ 5351 - int ext4_write_inode(struct inode *inode, int wait) 5352 { 5353 int err; 5354 ··· 5362 return -EIO; 5363 } 5364 5365 - if (!wait) 5366 return 0; 5367 5368 err = ext4_force_commit(inode->i_sb); ··· 5372 err = ext4_get_inode_loc(inode, &iloc); 5373 if (err) 5374 return err; 5375 - if (wait) 5376 sync_dirty_buffer(iloc.bh); 5377 if (buffer_req(iloc.bh) && !buffer_uptodate(iloc.bh)) { 5378 ext4_error(inode->i_sb, "IO error syncing inode, "
··· 5348 * `stuff()' is running, and the new i_size will be lost. Plus the inode 5349 * will no longer be on the superblock's dirty inode list. 5350 */ 5351 + int ext4_write_inode(struct inode *inode, struct writeback_control *wbc) 5352 { 5353 int err; 5354 ··· 5362 return -EIO; 5363 } 5364 5365 + if (wbc->sync_mode != WB_SYNC_ALL) 5366 return 0; 5367 5368 err = ext4_force_commit(inode->i_sb); ··· 5372 err = ext4_get_inode_loc(inode, &iloc); 5373 if (err) 5374 return err; 5375 + if (wbc->sync_mode == WB_SYNC_ALL) 5376 sync_dirty_buffer(iloc.bh); 5377 if (buffer_req(iloc.bh) && !buffer_uptodate(iloc.bh)) { 5378 ext4_error(inode->i_sb, "IO error syncing inode, "
+7 -2
fs/fat/inode.c
··· 577 return i_pos; 578 } 579 580 - static int fat_write_inode(struct inode *inode, int wait) 581 { 582 struct super_block *sb = inode->i_sb; 583 struct msdos_sb_info *sbi = MSDOS_SB(sb); ··· 634 return err; 635 } 636 637 int fat_sync_inode(struct inode *inode) 638 { 639 - return fat_write_inode(inode, 1); 640 } 641 642 EXPORT_SYMBOL_GPL(fat_sync_inode);
··· 577 return i_pos; 578 } 579 580 + static int __fat_write_inode(struct inode *inode, int wait) 581 { 582 struct super_block *sb = inode->i_sb; 583 struct msdos_sb_info *sbi = MSDOS_SB(sb); ··· 634 return err; 635 } 636 637 + static int fat_write_inode(struct inode *inode, struct writeback_control *wbc) 638 + { 639 + return __fat_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 640 + } 641 + 642 int fat_sync_inode(struct inode *inode) 643 { 644 + return __fat_write_inode(inode, 1); 645 } 646 647 EXPORT_SYMBOL_GPL(fat_sync_inode);
+13 -9
fs/fs-writeback.c
··· 381 move_expired_inodes(&wb->b_dirty, &wb->b_io, older_than_this); 382 } 383 384 - static int write_inode(struct inode *inode, int sync) 385 { 386 if (inode->i_sb->s_op->write_inode && !is_bad_inode(inode)) 387 - return inode->i_sb->s_op->write_inode(inode, sync); 388 return 0; 389 } 390 ··· 421 writeback_single_inode(struct inode *inode, struct writeback_control *wbc) 422 { 423 struct address_space *mapping = inode->i_mapping; 424 - int wait = wbc->sync_mode == WB_SYNC_ALL; 425 unsigned dirty; 426 int ret; 427 ··· 438 * We'll have another go at writing back this inode when we 439 * completed a full scan of b_io. 440 */ 441 - if (!wait) { 442 requeue_io(inode); 443 return 0; 444 } ··· 460 461 ret = do_writepages(mapping, wbc); 462 463 - /* Don't write the inode if only I_DIRTY_PAGES was set */ 464 - if (dirty & (I_DIRTY_SYNC | I_DIRTY_DATASYNC)) { 465 - int err = write_inode(inode, wait); 466 if (ret == 0) 467 ret = err; 468 } 469 470 - if (wait) { 471 - int err = filemap_fdatawait(mapping); 472 if (ret == 0) 473 ret = err; 474 }
··· 381 move_expired_inodes(&wb->b_dirty, &wb->b_io, older_than_this); 382 } 383 384 + static int write_inode(struct inode *inode, struct writeback_control *wbc) 385 { 386 if (inode->i_sb->s_op->write_inode && !is_bad_inode(inode)) 387 + return inode->i_sb->s_op->write_inode(inode, wbc); 388 return 0; 389 } 390 ··· 421 writeback_single_inode(struct inode *inode, struct writeback_control *wbc) 422 { 423 struct address_space *mapping = inode->i_mapping; 424 unsigned dirty; 425 int ret; 426 ··· 439 * We'll have another go at writing back this inode when we 440 * completed a full scan of b_io. 441 */ 442 + if (wbc->sync_mode != WB_SYNC_ALL) { 443 requeue_io(inode); 444 return 0; 445 } ··· 461 462 ret = do_writepages(mapping, wbc); 463 464 + /* 465 + * Make sure to wait on the data before writing out the metadata. 466 + * This is important for filesystems that modify metadata on data 467 + * I/O completion. 468 + */ 469 + if (wbc->sync_mode == WB_SYNC_ALL) { 470 + int err = filemap_fdatawait(mapping); 471 if (ret == 0) 472 ret = err; 473 } 474 475 + /* Don't write the inode if only I_DIRTY_PAGES was set */ 476 + if (dirty & (I_DIRTY_SYNC | I_DIRTY_DATASYNC)) { 477 + int err = write_inode(inode, wbc); 478 if (ret == 0) 479 ret = err; 480 }
+3 -2
fs/gfs2/super.c
··· 22 #include <linux/crc32.h> 23 #include <linux/time.h> 24 #include <linux/wait.h> 25 26 #include "gfs2.h" 27 #include "incore.h" ··· 712 * Returns: errno 713 */ 714 715 - static int gfs2_write_inode(struct inode *inode, int sync) 716 { 717 struct gfs2_inode *ip = GFS2_I(inode); 718 struct gfs2_sbd *sdp = GFS2_SB(inode); ··· 746 do_unlock: 747 gfs2_glock_dq_uninit(&gh); 748 do_flush: 749 - if (sync != 0) 750 gfs2_log_flush(GFS2_SB(inode), ip->i_gl); 751 return ret; 752 }
··· 22 #include <linux/crc32.h> 23 #include <linux/time.h> 24 #include <linux/wait.h> 25 + #include <linux/writeback.h> 26 27 #include "gfs2.h" 28 #include "incore.h" ··· 711 * Returns: errno 712 */ 713 714 + static int gfs2_write_inode(struct inode *inode, struct writeback_control *wbc) 715 { 716 struct gfs2_inode *ip = GFS2_I(inode); 717 struct gfs2_sbd *sdp = GFS2_SB(inode); ··· 745 do_unlock: 746 gfs2_glock_dq_uninit(&gh); 747 do_flush: 748 + if (wbc->sync_mode == WB_SYNC_ALL) 749 gfs2_log_flush(GFS2_SB(inode), ip->i_gl); 750 return ret; 751 }
+1 -1
fs/hfs/hfs_fs.h
··· 188 189 extern struct inode *hfs_new_inode(struct inode *, struct qstr *, int); 190 extern void hfs_inode_write_fork(struct inode *, struct hfs_extent *, __be32 *, __be32 *); 191 - extern int hfs_write_inode(struct inode *, int); 192 extern int hfs_inode_setattr(struct dentry *, struct iattr *); 193 extern void hfs_inode_read_fork(struct inode *inode, struct hfs_extent *ext, 194 __be32 log_size, __be32 phys_size, u32 clump_size);
··· 188 189 extern struct inode *hfs_new_inode(struct inode *, struct qstr *, int); 190 extern void hfs_inode_write_fork(struct inode *, struct hfs_extent *, __be32 *, __be32 *); 191 + extern int hfs_write_inode(struct inode *, struct writeback_control *); 192 extern int hfs_inode_setattr(struct dentry *, struct iattr *); 193 extern void hfs_inode_read_fork(struct inode *inode, struct hfs_extent *ext, 194 __be32 log_size, __be32 phys_size, u32 clump_size);
+1 -1
fs/hfs/inode.c
··· 381 HFS_SB(inode->i_sb)->alloc_blksz); 382 } 383 384 - int hfs_write_inode(struct inode *inode, int unused) 385 { 386 struct inode *main_inode = inode; 387 struct hfs_find_data fd;
··· 381 HFS_SB(inode->i_sb)->alloc_blksz); 382 } 383 384 + int hfs_write_inode(struct inode *inode, struct writeback_control *wbc) 385 { 386 struct inode *main_inode = inode; 387 struct hfs_find_data fd;
+2 -1
fs/hfsplus/super.c
··· 87 return ERR_PTR(err); 88 } 89 90 - static int hfsplus_write_inode(struct inode *inode, int unused) 91 { 92 struct hfsplus_vh *vhdr; 93 int ret = 0;
··· 87 return ERR_PTR(err); 88 } 89 90 + static int hfsplus_write_inode(struct inode *inode, 91 + struct writeback_control *wbc) 92 { 93 struct hfsplus_vh *vhdr; 94 int ret = 0;
+4 -1
fs/jfs/inode.c
··· 22 #include <linux/buffer_head.h> 23 #include <linux/pagemap.h> 24 #include <linux/quotaops.h> 25 #include "jfs_incore.h" 26 #include "jfs_inode.h" 27 #include "jfs_filsys.h" ··· 121 return rc; 122 } 123 124 - int jfs_write_inode(struct inode *inode, int wait) 125 { 126 if (test_cflag(COMMIT_Nolink, inode)) 127 return 0; 128 /*
··· 22 #include <linux/buffer_head.h> 23 #include <linux/pagemap.h> 24 #include <linux/quotaops.h> 25 + #include <linux/writeback.h> 26 #include "jfs_incore.h" 27 #include "jfs_inode.h" 28 #include "jfs_filsys.h" ··· 120 return rc; 121 } 122 123 + int jfs_write_inode(struct inode *inode, struct writeback_control *wbc) 124 { 125 + int wait = wbc->sync_mode == WB_SYNC_ALL; 126 + 127 if (test_cflag(COMMIT_Nolink, inode)) 128 return 0; 129 /*
+1 -1
fs/jfs/jfs_inode.h
··· 26 extern long jfs_compat_ioctl(struct file *, unsigned int, unsigned long); 27 extern struct inode *jfs_iget(struct super_block *, unsigned long); 28 extern int jfs_commit_inode(struct inode *, int); 29 - extern int jfs_write_inode(struct inode*, int); 30 extern void jfs_delete_inode(struct inode *); 31 extern void jfs_dirty_inode(struct inode *); 32 extern void jfs_truncate(struct inode *);
··· 26 extern long jfs_compat_ioctl(struct file *, unsigned int, unsigned long); 27 extern struct inode *jfs_iget(struct super_block *, unsigned long); 28 extern int jfs_commit_inode(struct inode *, int); 29 + extern int jfs_write_inode(struct inode *, struct writeback_control *); 30 extern void jfs_delete_inode(struct inode *); 31 extern void jfs_dirty_inode(struct inode *); 32 extern void jfs_truncate(struct inode *);
+5 -3
fs/minix/inode.c
··· 17 #include <linux/init.h> 18 #include <linux/highuid.h> 19 #include <linux/vfs.h> 20 21 - static int minix_write_inode(struct inode * inode, int wait); 22 static int minix_statfs(struct dentry *dentry, struct kstatfs *buf); 23 static int minix_remount (struct super_block * sb, int * flags, char * data); 24 ··· 554 return bh; 555 } 556 557 - static int minix_write_inode(struct inode *inode, int wait) 558 { 559 int err = 0; 560 struct buffer_head *bh; ··· 565 bh = V2_minix_update_inode(inode); 566 if (!bh) 567 return -EIO; 568 - if (wait && buffer_dirty(bh)) { 569 sync_dirty_buffer(bh); 570 if (buffer_req(bh) && !buffer_uptodate(bh)) { 571 printk("IO error syncing minix inode [%s:%08lx]\n",
··· 17 #include <linux/init.h> 18 #include <linux/highuid.h> 19 #include <linux/vfs.h> 20 + #include <linux/writeback.h> 21 22 + static int minix_write_inode(struct inode *inode, 23 + struct writeback_control *wbc); 24 static int minix_statfs(struct dentry *dentry, struct kstatfs *buf); 25 static int minix_remount (struct super_block * sb, int * flags, char * data); 26 ··· 552 return bh; 553 } 554 555 + static int minix_write_inode(struct inode *inode, struct writeback_control *wbc) 556 { 557 int err = 0; 558 struct buffer_head *bh; ··· 563 bh = V2_minix_update_inode(inode); 564 if (!bh) 565 return -EIO; 566 + if (wbc->sync_mode == WB_SYNC_ALL && buffer_dirty(bh)) { 567 sync_dirty_buffer(bh); 568 if (buffer_req(bh) && !buffer_uptodate(bh)) { 569 printk("IO error syncing minix inode [%s:%08lx]\n",
+3 -7
fs/nfs/inode.c
··· 97 return ino; 98 } 99 100 - int nfs_write_inode(struct inode *inode, int sync) 101 { 102 int ret; 103 104 - if (sync) { 105 - ret = filemap_fdatawait(inode->i_mapping); 106 - if (ret == 0) 107 - ret = nfs_commit_inode(inode, FLUSH_SYNC); 108 - } else 109 - ret = nfs_commit_inode(inode, 0); 110 if (ret >= 0) 111 return 0; 112 __mark_inode_dirty(inode, I_DIRTY_DATASYNC);
··· 97 return ino; 98 } 99 100 + int nfs_write_inode(struct inode *inode, struct writeback_control *wbc) 101 { 102 int ret; 103 104 + ret = nfs_commit_inode(inode, 105 + wbc->sync_mode == WB_SYNC_ALL ? FLUSH_SYNC : 0); 106 if (ret >= 0) 107 return 0; 108 __mark_inode_dirty(inode, I_DIRTY_DATASYNC);
+1 -1
fs/nfs/internal.h
··· 211 extern struct workqueue_struct *nfsiod_workqueue; 212 extern struct inode *nfs_alloc_inode(struct super_block *sb); 213 extern void nfs_destroy_inode(struct inode *); 214 - extern int nfs_write_inode(struct inode *,int); 215 extern void nfs_clear_inode(struct inode *); 216 #ifdef CONFIG_NFS_V4 217 extern void nfs4_clear_inode(struct inode *);
··· 211 extern struct workqueue_struct *nfsiod_workqueue; 212 extern struct inode *nfs_alloc_inode(struct super_block *sb); 213 extern void nfs_destroy_inode(struct inode *); 214 + extern int nfs_write_inode(struct inode *, struct writeback_control *); 215 extern void nfs_clear_inode(struct inode *); 216 #ifdef CONFIG_NFS_V4 217 extern void nfs4_clear_inode(struct inode *);
+1 -1
fs/ntfs/dir.c
··· 1545 write_inode_now(bmp_vi, !datasync); 1546 iput(bmp_vi); 1547 } 1548 - ret = ntfs_write_inode(vi, 1); 1549 write_inode_now(vi, !datasync); 1550 err = sync_blockdev(vi->i_sb->s_bdev); 1551 if (unlikely(err && !ret))
··· 1545 write_inode_now(bmp_vi, !datasync); 1546 iput(bmp_vi); 1547 } 1548 + ret = __ntfs_write_inode(vi, 1); 1549 write_inode_now(vi, !datasync); 1550 err = sync_blockdev(vi->i_sb->s_bdev); 1551 if (unlikely(err && !ret))
+1 -1
fs/ntfs/file.c
··· 2182 ntfs_debug("Entering for inode 0x%lx.", vi->i_ino); 2183 BUG_ON(S_ISDIR(vi->i_mode)); 2184 if (!datasync || !NInoNonResident(NTFS_I(vi))) 2185 - ret = ntfs_write_inode(vi, 1); 2186 write_inode_now(vi, !datasync); 2187 /* 2188 * NOTE: If we were to use mapping->private_list (see ext2 and
··· 2182 ntfs_debug("Entering for inode 0x%lx.", vi->i_ino); 2183 BUG_ON(S_ISDIR(vi->i_mode)); 2184 if (!datasync || !NInoNonResident(NTFS_I(vi))) 2185 + ret = __ntfs_write_inode(vi, 1); 2186 write_inode_now(vi, !datasync); 2187 /* 2188 * NOTE: If we were to use mapping->private_list (see ext2 and
+1 -1
fs/ntfs/inode.c
··· 2957 * 2958 * Return 0 on success and -errno on error. 2959 */ 2960 - int ntfs_write_inode(struct inode *vi, int sync) 2961 { 2962 sle64 nt; 2963 ntfs_inode *ni = NTFS_I(vi);
··· 2957 * 2958 * Return 0 on success and -errno on error. 2959 */ 2960 + int __ntfs_write_inode(struct inode *vi, int sync) 2961 { 2962 sle64 nt; 2963 ntfs_inode *ni = NTFS_I(vi);
+2 -2
fs/ntfs/inode.h
··· 307 308 extern int ntfs_setattr(struct dentry *dentry, struct iattr *attr); 309 310 - extern int ntfs_write_inode(struct inode *vi, int sync); 311 312 static inline void ntfs_commit_inode(struct inode *vi) 313 { 314 if (!is_bad_inode(vi)) 315 - ntfs_write_inode(vi, 1); 316 return; 317 } 318
··· 307 308 extern int ntfs_setattr(struct dentry *dentry, struct iattr *attr); 309 310 + extern int __ntfs_write_inode(struct inode *vi, int sync); 311 312 static inline void ntfs_commit_inode(struct inode *vi) 313 { 314 if (!is_bad_inode(vi)) 315 + __ntfs_write_inode(vi, 1); 316 return; 317 } 318
+8
fs/ntfs/super.c
··· 39 #include "dir.h" 40 #include "debug.h" 41 #include "index.h" 42 #include "aops.h" 43 #include "layout.h" 44 #include "malloc.h" ··· 2662 sfs->f_namelen = NTFS_MAX_NAME_LEN; 2663 return 0; 2664 } 2665 2666 /** 2667 * The complete super operations.
··· 39 #include "dir.h" 40 #include "debug.h" 41 #include "index.h" 42 + #include "inode.h" 43 #include "aops.h" 44 #include "layout.h" 45 #include "malloc.h" ··· 2661 sfs->f_namelen = NTFS_MAX_NAME_LEN; 2662 return 0; 2663 } 2664 + 2665 + #ifdef NTFS_RW 2666 + static int ntfs_write_inode(struct inode *vi, struct writeback_control *wbc) 2667 + { 2668 + return __ntfs_write_inode(vi, wbc->sync_mode == WB_SYNC_ALL); 2669 + } 2670 + #endif 2671 2672 /** 2673 * The complete super operations.
+8 -2
fs/omfs/inode.c
··· 11 #include <linux/parser.h> 12 #include <linux/buffer_head.h> 13 #include <linux/vmalloc.h> 14 #include <linux/crc-itu-t.h> 15 #include "omfs.h" 16 ··· 90 oi->i_head.h_check_xor = xor; 91 } 92 93 - static int omfs_write_inode(struct inode *inode, int wait) 94 { 95 struct omfs_inode *oi; 96 struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb); ··· 163 return ret; 164 } 165 166 int omfs_sync_inode(struct inode *inode) 167 { 168 - return omfs_write_inode(inode, 1); 169 } 170 171 /*
··· 11 #include <linux/parser.h> 12 #include <linux/buffer_head.h> 13 #include <linux/vmalloc.h> 14 + #include <linux/writeback.h> 15 #include <linux/crc-itu-t.h> 16 #include "omfs.h" 17 ··· 89 oi->i_head.h_check_xor = xor; 90 } 91 92 + static int __omfs_write_inode(struct inode *inode, int wait) 93 { 94 struct omfs_inode *oi; 95 struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb); ··· 162 return ret; 163 } 164 165 + static int omfs_write_inode(struct inode *inode, struct writeback_control *wbc) 166 + { 167 + return __omfs_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 168 + } 169 + 170 int omfs_sync_inode(struct inode *inode) 171 { 172 + return __omfs_write_inode(inode, 1); 173 } 174 175 /*
+2 -2
fs/reiserfs/inode.c
··· 1615 ** to properly mark inodes for datasync and such, but only actually 1616 ** does something when called for a synchronous update. 1617 */ 1618 - int reiserfs_write_inode(struct inode *inode, int do_sync) 1619 { 1620 struct reiserfs_transaction_handle th; 1621 int jbegin_count = 1; ··· 1627 ** inode needs to reach disk for safety, and they can safely be 1628 ** ignored because the altered inode has already been logged. 1629 */ 1630 - if (do_sync && !(current->flags & PF_MEMALLOC)) { 1631 reiserfs_write_lock(inode->i_sb); 1632 if (!journal_begin(&th, inode->i_sb, jbegin_count)) { 1633 reiserfs_update_sd(&th, inode);
··· 1615 ** to properly mark inodes for datasync and such, but only actually 1616 ** does something when called for a synchronous update. 1617 */ 1618 + int reiserfs_write_inode(struct inode *inode, struct writeback_control *wbc) 1619 { 1620 struct reiserfs_transaction_handle th; 1621 int jbegin_count = 1; ··· 1627 ** inode needs to reach disk for safety, and they can safely be 1628 ** ignored because the altered inode has already been logged. 1629 */ 1630 + if (wbc->sync_mode == WB_SYNC_ALL && !(current->flags & PF_MEMALLOC)) { 1631 reiserfs_write_lock(inode->i_sb); 1632 if (!journal_begin(&th, inode->i_sb, jbegin_count)) { 1633 reiserfs_update_sd(&th, inode);
+8 -2
fs/sysv/inode.c
··· 26 #include <linux/init.h> 27 #include <linux/buffer_head.h> 28 #include <linux/vfs.h> 29 #include <linux/namei.h> 30 #include <asm/byteorder.h> 31 #include "sysv.h" ··· 247 return ERR_PTR(-EIO); 248 } 249 250 - int sysv_write_inode(struct inode *inode, int wait) 251 { 252 struct super_block * sb = inode->i_sb; 253 struct sysv_sb_info * sbi = SYSV_SB(sb); ··· 297 return 0; 298 } 299 300 int sysv_sync_inode(struct inode *inode) 301 { 302 - return sysv_write_inode(inode, 1); 303 } 304 305 static void sysv_delete_inode(struct inode *inode)
··· 26 #include <linux/init.h> 27 #include <linux/buffer_head.h> 28 #include <linux/vfs.h> 29 + #include <linux/writeback.h> 30 #include <linux/namei.h> 31 #include <asm/byteorder.h> 32 #include "sysv.h" ··· 246 return ERR_PTR(-EIO); 247 } 248 249 + static int __sysv_write_inode(struct inode *inode, int wait) 250 { 251 struct super_block * sb = inode->i_sb; 252 struct sysv_sb_info * sbi = SYSV_SB(sb); ··· 296 return 0; 297 } 298 299 + int sysv_write_inode(struct inode *inode, struct writeback_control *wbc) 300 + { 301 + return __sysv_write_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 302 + } 303 + 304 int sysv_sync_inode(struct inode *inode) 305 { 306 + return __sysv_write_inode(inode, 1); 307 } 308 309 static void sysv_delete_inode(struct inode *inode)
+1 -1
fs/sysv/sysv.h
··· 142 143 /* inode.c */ 144 extern struct inode *sysv_iget(struct super_block *, unsigned int); 145 - extern int sysv_write_inode(struct inode *, int); 146 extern int sysv_sync_inode(struct inode *); 147 extern void sysv_set_inode(struct inode *, dev_t); 148 extern int sysv_getattr(struct vfsmount *, struct dentry *, struct kstat *);
··· 142 143 /* inode.c */ 144 extern struct inode *sysv_iget(struct super_block *, unsigned int); 145 + extern int sysv_write_inode(struct inode *, struct writeback_control *wbc); 146 extern int sysv_sync_inode(struct inode *); 147 extern void sysv_set_inode(struct inode *, dev_t); 148 extern int sysv_getattr(struct vfsmount *, struct dentry *, struct kstat *);
+1 -1
fs/ubifs/dir.c
··· 1120 if (release) 1121 ubifs_release_budget(c, &ino_req); 1122 if (IS_SYNC(old_inode)) 1123 - err = old_inode->i_sb->s_op->write_inode(old_inode, 1); 1124 return err; 1125 1126 out_cancel:
··· 1120 if (release) 1121 ubifs_release_budget(c, &ino_req); 1122 if (IS_SYNC(old_inode)) 1123 + err = old_inode->i_sb->s_op->write_inode(old_inode, NULL); 1124 return err; 1125 1126 out_cancel:
+4 -4
fs/ubifs/file.c
··· 1011 /* Is the page fully inside @i_size? */ 1012 if (page->index < end_index) { 1013 if (page->index >= synced_i_size >> PAGE_CACHE_SHIFT) { 1014 - err = inode->i_sb->s_op->write_inode(inode, 1); 1015 if (err) 1016 goto out_unlock; 1017 /* ··· 1039 kunmap_atomic(kaddr, KM_USER0); 1040 1041 if (i_size > synced_i_size) { 1042 - err = inode->i_sb->s_op->write_inode(inode, 1); 1043 if (err) 1044 goto out_unlock; 1045 } ··· 1242 if (release) 1243 ubifs_release_budget(c, &req); 1244 if (IS_SYNC(inode)) 1245 - err = inode->i_sb->s_op->write_inode(inode, 1); 1246 return err; 1247 1248 out: ··· 1316 * the inode unless this is a 'datasync()' call. 1317 */ 1318 if (!datasync || (inode->i_state & I_DIRTY_DATASYNC)) { 1319 - err = inode->i_sb->s_op->write_inode(inode, 1); 1320 if (err) 1321 return err; 1322 }
··· 1011 /* Is the page fully inside @i_size? */ 1012 if (page->index < end_index) { 1013 if (page->index >= synced_i_size >> PAGE_CACHE_SHIFT) { 1014 + err = inode->i_sb->s_op->write_inode(inode, NULL); 1015 if (err) 1016 goto out_unlock; 1017 /* ··· 1039 kunmap_atomic(kaddr, KM_USER0); 1040 1041 if (i_size > synced_i_size) { 1042 + err = inode->i_sb->s_op->write_inode(inode, NULL); 1043 if (err) 1044 goto out_unlock; 1045 } ··· 1242 if (release) 1243 ubifs_release_budget(c, &req); 1244 if (IS_SYNC(inode)) 1245 + err = inode->i_sb->s_op->write_inode(inode, NULL); 1246 return err; 1247 1248 out: ··· 1316 * the inode unless this is a 'datasync()' call. 1317 */ 1318 if (!datasync || (inode->i_state & I_DIRTY_DATASYNC)) { 1319 + err = inode->i_sb->s_op->write_inode(inode, NULL); 1320 if (err) 1321 return err; 1322 }
+1 -1
fs/ubifs/super.c
··· 283 /* 284 * Note, Linux write-back code calls this without 'i_mutex'. 285 */ 286 - static int ubifs_write_inode(struct inode *inode, int wait) 287 { 288 int err = 0; 289 struct ubifs_info *c = inode->i_sb->s_fs_info;
··· 283 /* 284 * Note, Linux write-back code calls this without 'i_mutex'. 285 */ 286 + static int ubifs_write_inode(struct inode *inode, struct writeback_control *wbc) 287 { 288 int err = 0; 289 struct ubifs_info *c = inode->i_sb->s_fs_info;
+2 -2
fs/udf/inode.c
··· 1373 return mode; 1374 } 1375 1376 - int udf_write_inode(struct inode *inode, int sync) 1377 { 1378 int ret; 1379 1380 lock_kernel(); 1381 - ret = udf_update_inode(inode, sync); 1382 unlock_kernel(); 1383 1384 return ret;
··· 1373 return mode; 1374 } 1375 1376 + int udf_write_inode(struct inode *inode, struct writeback_control *wbc) 1377 { 1378 int ret; 1379 1380 lock_kernel(); 1381 + ret = udf_update_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 1382 unlock_kernel(); 1383 1384 return ret;
+1 -1
fs/udf/udfdecl.h
··· 142 extern void udf_read_inode(struct inode *); 143 extern void udf_delete_inode(struct inode *); 144 extern void udf_clear_inode(struct inode *); 145 - extern int udf_write_inode(struct inode *, int); 146 extern long udf_block_map(struct inode *, sector_t); 147 extern int udf_extend_file(struct inode *, struct extent_position *, 148 struct kernel_long_ad *, sector_t);
··· 142 extern void udf_read_inode(struct inode *); 143 extern void udf_delete_inode(struct inode *); 144 extern void udf_clear_inode(struct inode *); 145 + extern int udf_write_inode(struct inode *, struct writeback_control *wbc); 146 extern long udf_block_map(struct inode *, sector_t); 147 extern int udf_extend_file(struct inode *, struct extent_position *, 148 struct kernel_long_ad *, sector_t);
+3 -2
fs/ufs/inode.c
··· 36 #include <linux/mm.h> 37 #include <linux/smp_lock.h> 38 #include <linux/buffer_head.h> 39 40 #include "ufs_fs.h" 41 #include "ufs.h" ··· 891 return 0; 892 } 893 894 - int ufs_write_inode (struct inode * inode, int wait) 895 { 896 int ret; 897 lock_kernel(); 898 - ret = ufs_update_inode (inode, wait); 899 unlock_kernel(); 900 return ret; 901 }
··· 36 #include <linux/mm.h> 37 #include <linux/smp_lock.h> 38 #include <linux/buffer_head.h> 39 + #include <linux/writeback.h> 40 41 #include "ufs_fs.h" 42 #include "ufs.h" ··· 890 return 0; 891 } 892 893 + int ufs_write_inode(struct inode *inode, struct writeback_control *wbc) 894 { 895 int ret; 896 lock_kernel(); 897 + ret = ufs_update_inode(inode, wbc->sync_mode == WB_SYNC_ALL); 898 unlock_kernel(); 899 return ret; 900 }
+1 -1
fs/ufs/ufs.h
··· 106 107 /* inode.c */ 108 extern struct inode *ufs_iget(struct super_block *, unsigned long); 109 - extern int ufs_write_inode (struct inode *, int); 110 extern int ufs_sync_inode (struct inode *); 111 extern void ufs_delete_inode (struct inode *); 112 extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
··· 106 107 /* inode.c */ 108 extern struct inode *ufs_iget(struct super_block *, unsigned long); 109 + extern int ufs_write_inode (struct inode *, struct writeback_control *); 110 extern int ufs_sync_inode (struct inode *); 111 extern void ufs_delete_inode (struct inode *); 112 extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
+2 -6
fs/xfs/linux-2.6/xfs_super.c
··· 1063 STATIC int 1064 xfs_fs_write_inode( 1065 struct inode *inode, 1066 - int sync) 1067 { 1068 struct xfs_inode *ip = XFS_I(inode); 1069 struct xfs_mount *mp = ip->i_mount; ··· 1074 if (XFS_FORCED_SHUTDOWN(mp)) 1075 return XFS_ERROR(EIO); 1076 1077 - if (sync) { 1078 - error = xfs_wait_on_pages(ip, 0, -1); 1079 - if (error) 1080 - goto out; 1081 - 1082 /* 1083 * Make sure the inode has hit stable storage. By using the 1084 * log and the fsync transactions we reduce the IOs we have
··· 1063 STATIC int 1064 xfs_fs_write_inode( 1065 struct inode *inode, 1066 + struct writeback_control *wbc) 1067 { 1068 struct xfs_inode *ip = XFS_I(inode); 1069 struct xfs_mount *mp = ip->i_mount; ··· 1074 if (XFS_FORCED_SHUTDOWN(mp)) 1075 return XFS_ERROR(EIO); 1076 1077 + if (wbc->sync_mode == WB_SYNC_ALL) { 1078 /* 1079 * Make sure the inode has hit stable storage. By using the 1080 * log and the fsync transactions we reduce the IOs we have
+1 -1
include/linux/ext3_fs.h
··· 877 int create); 878 879 extern struct inode *ext3_iget(struct super_block *, unsigned long); 880 - extern int ext3_write_inode (struct inode *, int); 881 extern int ext3_setattr (struct dentry *, struct iattr *); 882 extern void ext3_delete_inode (struct inode *); 883 extern int ext3_sync_inode (handle_t *, struct inode *);
··· 877 int create); 878 879 extern struct inode *ext3_iget(struct super_block *, unsigned long); 880 + extern int ext3_write_inode (struct inode *, struct writeback_control *); 881 extern int ext3_setattr (struct dentry *, struct iattr *); 882 extern void ext3_delete_inode (struct inode *); 883 extern int ext3_sync_inode (handle_t *, struct inode *);
+1 -1
include/linux/fs.h
··· 1557 void (*destroy_inode)(struct inode *); 1558 1559 void (*dirty_inode) (struct inode *); 1560 - int (*write_inode) (struct inode *, int); 1561 void (*drop_inode) (struct inode *); 1562 void (*delete_inode) (struct inode *); 1563 void (*put_super) (struct super_block *);
··· 1557 void (*destroy_inode)(struct inode *); 1558 1559 void (*dirty_inode) (struct inode *); 1560 + int (*write_inode) (struct inode *, struct writeback_control *wbc); 1561 void (*drop_inode) (struct inode *); 1562 void (*delete_inode) (struct inode *); 1563 void (*put_super) (struct super_block *);
+1 -1
include/linux/reiserfs_fs.h
··· 2034 int reiserfs_find_actor(struct inode *inode, void *p); 2035 int reiserfs_init_locked_inode(struct inode *inode, void *p); 2036 void reiserfs_delete_inode(struct inode *inode); 2037 - int reiserfs_write_inode(struct inode *inode, int); 2038 int reiserfs_get_block(struct inode *inode, sector_t block, 2039 struct buffer_head *bh_result, int create); 2040 struct dentry *reiserfs_fh_to_dentry(struct super_block *sb, struct fid *fid,
··· 2034 int reiserfs_find_actor(struct inode *inode, void *p); 2035 int reiserfs_init_locked_inode(struct inode *inode, void *p); 2036 void reiserfs_delete_inode(struct inode *inode); 2037 + int reiserfs_write_inode(struct inode *inode, struct writeback_control *wbc); 2038 int reiserfs_get_block(struct inode *inode, sector_t block, 2039 struct buffer_head *bh_result, int create); 2040 struct dentry *reiserfs_fh_to_dentry(struct super_block *sb, struct fid *fid,