Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vfs: Rename end_writeback() to clear_inode()

After we moved inode_sync_wait() from end_writeback() it doesn't make sense
to call the function end_writeback() anymore. Rename it to clear_inode()
which well says what the function really does - set I_CLEAR flag.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>

authored by

Jan Kara and committed by
Fengguang Wu
dbd5768f 7994e6f7

+68 -70
+7 -9
Documentation/filesystems/porting
··· 297 297 be used instead. It gets called whenever the inode is evicted, whether it has 298 298 remaining links or not. Caller does *not* evict the pagecache or inode-associated 299 299 metadata buffers; getting rid of those is responsibility of method, as it had 300 - been for ->delete_inode(). 300 + been for ->delete_inode(). Caller makes sure async writeback cannot be running 301 + for the inode while (or after) ->evict_inode() is called. 301 302 302 303 ->drop_inode() returns int now; it's called on final iput() with 303 304 inode->i_lock held and it returns true if filesystems wants the inode to be ··· 307 306 simply of return 1. Note that all actual eviction work is done by caller after 308 307 ->drop_inode() returns. 309 308 310 - clear_inode() is gone; use end_writeback() instead. As before, it must 311 - be called exactly once on each call of ->evict_inode() (as it used to be for 312 - each call of ->delete_inode()). Unlike before, if you are using inode-associated 313 - metadata buffers (i.e. mark_buffer_dirty_inode()), it's your responsibility to 314 - call invalidate_inode_buffers() before end_writeback(). 315 - No async writeback (and thus no calls of ->write_inode()) will happen 316 - after end_writeback() returns, so actions that should not overlap with ->write_inode() 317 - (e.g. freeing on-disk inode if i_nlink is 0) ought to be done after that call. 309 + As before, clear_inode() must be called exactly once on each call of 310 + ->evict_inode() (as it used to be for each call of ->delete_inode()). Unlike 311 + before, if you are using inode-associated metadata buffers (i.e. 312 + mark_buffer_dirty_inode()), it's your responsibility to call 313 + invalidate_inode_buffers() before clear_inode(). 318 314 319 315 NOTE: checking i_nlink in the beginning of ->write_inode() and bailing out 320 316 if it's zero is not *and* *never* *had* *been* enough. Final unlink() and iput()
+1 -1
arch/powerpc/platforms/cell/spufs/inode.c
··· 151 151 spufs_evict_inode(struct inode *inode) 152 152 { 153 153 struct spufs_inode_info *ei = SPUFS_I(inode); 154 - end_writeback(inode); 154 + clear_inode(inode); 155 155 if (ei->i_ctx) 156 156 put_spu_context(ei->i_ctx); 157 157 if (ei->i_gang)
+1 -1
arch/s390/hypfs/inode.c
··· 115 115 116 116 static void hypfs_evict_inode(struct inode *inode) 117 117 { 118 - end_writeback(inode); 118 + clear_inode(inode); 119 119 kfree(inode->i_private); 120 120 } 121 121
+1 -1
fs/9p/vfs_inode.c
··· 448 448 struct v9fs_inode *v9inode = V9FS_I(inode); 449 449 450 450 truncate_inode_pages(inode->i_mapping, 0); 451 - end_writeback(inode); 451 + clear_inode(inode); 452 452 filemap_fdatawrite(inode->i_mapping); 453 453 454 454 #ifdef CONFIG_9P_FSCACHE
+1 -1
fs/affs/inode.c
··· 264 264 } 265 265 266 266 invalidate_inode_buffers(inode); 267 - end_writeback(inode); 267 + clear_inode(inode); 268 268 affs_free_prealloc(inode); 269 269 cache_page = (unsigned long)AFFS_I(inode)->i_lc; 270 270 if (cache_page) {
+1 -1
fs/afs/inode.c
··· 423 423 ASSERTCMP(inode->i_ino, ==, vnode->fid.vnode); 424 424 425 425 truncate_inode_pages(&inode->i_data, 0); 426 - end_writeback(inode); 426 + clear_inode(inode); 427 427 428 428 afs_give_up_callback(vnode); 429 429
+1 -1
fs/autofs4/inode.c
··· 101 101 102 102 static void autofs4_evict_inode(struct inode *inode) 103 103 { 104 - end_writeback(inode); 104 + clear_inode(inode); 105 105 kfree(inode->i_private); 106 106 } 107 107
+1 -1
fs/bfs/inode.c
··· 174 174 175 175 truncate_inode_pages(&inode->i_data, 0); 176 176 invalidate_inode_buffers(inode); 177 - end_writeback(inode); 177 + clear_inode(inode); 178 178 179 179 if (inode->i_nlink) 180 180 return;
+1 -1
fs/binfmt_misc.c
··· 505 505 506 506 static void bm_evict_inode(struct inode *inode) 507 507 { 508 - end_writeback(inode); 508 + clear_inode(inode); 509 509 kfree(inode->i_private); 510 510 } 511 511
+1 -1
fs/block_dev.c
··· 487 487 struct list_head *p; 488 488 truncate_inode_pages(&inode->i_data, 0); 489 489 invalidate_inode_buffers(inode); /* is it needed here? */ 490 - end_writeback(inode); 490 + clear_inode(inode); 491 491 spin_lock(&bdev_lock); 492 492 while ( (p = bdev->bd_inodes.next) != &bdev->bd_inodes ) { 493 493 __bd_forget(list_entry(p, struct inode, i_devices));
+1 -1
fs/btrfs/inode.c
··· 3756 3756 btrfs_end_transaction(trans, root); 3757 3757 btrfs_btree_balance_dirty(root, nr); 3758 3758 no_delete: 3759 - end_writeback(inode); 3759 + clear_inode(inode); 3760 3760 return; 3761 3761 } 3762 3762
+1 -1
fs/cifs/cifsfs.c
··· 272 272 cifs_evict_inode(struct inode *inode) 273 273 { 274 274 truncate_inode_pages(&inode->i_data, 0); 275 - end_writeback(inode); 275 + clear_inode(inode); 276 276 cifs_fscache_release_inode_cookie(inode); 277 277 } 278 278
+1 -1
fs/coda/inode.c
··· 244 244 static void coda_evict_inode(struct inode *inode) 245 245 { 246 246 truncate_inode_pages(&inode->i_data, 0); 247 - end_writeback(inode); 247 + clear_inode(inode); 248 248 coda_cache_clear_inode(inode); 249 249 } 250 250
+1 -1
fs/ecryptfs/super.c
··· 133 133 static void ecryptfs_evict_inode(struct inode *inode) 134 134 { 135 135 truncate_inode_pages(&inode->i_data, 0); 136 - end_writeback(inode); 136 + clear_inode(inode); 137 137 iput(ecryptfs_inode_to_lower(inode)); 138 138 } 139 139
+2 -2
fs/exofs/inode.c
··· 1473 1473 goto no_delete; 1474 1474 1475 1475 inode->i_size = 0; 1476 - end_writeback(inode); 1476 + clear_inode(inode); 1477 1477 1478 1478 /* if we are deleting an obj that hasn't been created yet, wait. 1479 1479 * This also makes sure that create_done cannot be called with an ··· 1503 1503 return; 1504 1504 1505 1505 no_delete: 1506 - end_writeback(inode); 1506 + clear_inode(inode); 1507 1507 }
+1 -1
fs/ext2/inode.c
··· 90 90 } 91 91 92 92 invalidate_inode_buffers(inode); 93 - end_writeback(inode); 93 + clear_inode(inode); 94 94 95 95 ext2_discard_reservation(inode); 96 96 rsv = EXT2_I(inode)->i_block_alloc_info;
+3 -3
fs/ext3/inode.c
··· 272 272 if (ext3_mark_inode_dirty(handle, inode)) { 273 273 /* If that failed, just dquot_drop() and be done with that */ 274 274 dquot_drop(inode); 275 - end_writeback(inode); 275 + clear_inode(inode); 276 276 } else { 277 277 ext3_xattr_delete_inode(handle, inode); 278 278 dquot_free_inode(inode); 279 279 dquot_drop(inode); 280 - end_writeback(inode); 280 + clear_inode(inode); 281 281 ext3_free_inode(handle, inode); 282 282 } 283 283 ext3_journal_stop(handle); 284 284 return; 285 285 no_delete: 286 - end_writeback(inode); 286 + clear_inode(inode); 287 287 dquot_drop(inode); 288 288 } 289 289
+1 -1
fs/ext4/super.c
··· 1007 1007 void ext4_clear_inode(struct inode *inode) 1008 1008 { 1009 1009 invalidate_inode_buffers(inode); 1010 - end_writeback(inode); 1010 + clear_inode(inode); 1011 1011 dquot_drop(inode); 1012 1012 ext4_discard_preallocations(inode); 1013 1013 if (EXT4_I(inode)->jinode) {
+1 -1
fs/fat/inode.c
··· 454 454 fat_truncate_blocks(inode, 0); 455 455 } 456 456 invalidate_inode_buffers(inode); 457 - end_writeback(inode); 457 + clear_inode(inode); 458 458 fat_cache_inval_inode(inode); 459 459 fat_detach(inode); 460 460 }
+1 -1
fs/freevxfs/vxfs_inode.c
··· 355 355 vxfs_evict_inode(struct inode *ip) 356 356 { 357 357 truncate_inode_pages(&ip->i_data, 0); 358 - end_writeback(ip); 358 + clear_inode(ip); 359 359 call_rcu(&ip->i_rcu, vxfs_i_callback); 360 360 }
+1 -1
fs/fuse/inode.c
··· 122 122 static void fuse_evict_inode(struct inode *inode) 123 123 { 124 124 truncate_inode_pages(&inode->i_data, 0); 125 - end_writeback(inode); 125 + clear_inode(inode); 126 126 if (inode->i_sb->s_flags & MS_ACTIVE) { 127 127 struct fuse_conn *fc = get_fuse_conn(inode); 128 128 struct fuse_inode *fi = get_fuse_inode(inode);
+1 -1
fs/gfs2/super.c
··· 1554 1554 out: 1555 1555 /* Case 3 starts here */ 1556 1556 truncate_inode_pages(&inode->i_data, 0); 1557 - end_writeback(inode); 1557 + clear_inode(inode); 1558 1558 gfs2_dir_hash_inval(ip); 1559 1559 ip->i_gl->gl_object = NULL; 1560 1560 flush_delayed_work_sync(&ip->i_gl->gl_work);
+1 -1
fs/hfs/inode.c
··· 532 532 void hfs_evict_inode(struct inode *inode) 533 533 { 534 534 truncate_inode_pages(&inode->i_data, 0); 535 - end_writeback(inode); 535 + clear_inode(inode); 536 536 if (HFS_IS_RSRC(inode) && HFS_I(inode)->rsrc_inode) { 537 537 HFS_I(HFS_I(inode)->rsrc_inode)->rsrc_inode = NULL; 538 538 iput(HFS_I(inode)->rsrc_inode);
+1 -1
fs/hfsplus/super.c
··· 154 154 { 155 155 dprint(DBG_INODE, "hfsplus_evict_inode: %lu\n", inode->i_ino); 156 156 truncate_inode_pages(&inode->i_data, 0); 157 - end_writeback(inode); 157 + clear_inode(inode); 158 158 if (HFSPLUS_IS_RSRC(inode)) { 159 159 HFSPLUS_I(HFSPLUS_I(inode)->rsrc_inode)->rsrc_inode = NULL; 160 160 iput(HFSPLUS_I(inode)->rsrc_inode);
+1 -1
fs/hostfs/hostfs_kern.c
··· 240 240 static void hostfs_evict_inode(struct inode *inode) 241 241 { 242 242 truncate_inode_pages(&inode->i_data, 0); 243 - end_writeback(inode); 243 + clear_inode(inode); 244 244 if (HOSTFS_I(inode)->fd != -1) { 245 245 close_file(&HOSTFS_I(inode)->fd); 246 246 HOSTFS_I(inode)->fd = -1;
+1 -1
fs/hpfs/inode.c
··· 299 299 void hpfs_evict_inode(struct inode *inode) 300 300 { 301 301 truncate_inode_pages(&inode->i_data, 0); 302 - end_writeback(inode); 302 + clear_inode(inode); 303 303 if (!inode->i_nlink) { 304 304 hpfs_lock(inode->i_sb); 305 305 hpfs_remove_fnode(inode->i_sb, inode->i_ino);
+1 -1
fs/hppfs/hppfs.c
··· 614 614 615 615 void hppfs_evict_inode(struct inode *ino) 616 616 { 617 - end_writeback(ino); 617 + clear_inode(ino); 618 618 dput(HPPFS_I(ino)->proc_dentry); 619 619 mntput(ino->i_sb->s_fs_info); 620 620 }
+1 -1
fs/hugetlbfs/inode.c
··· 393 393 static void hugetlbfs_evict_inode(struct inode *inode) 394 394 { 395 395 truncate_hugepages(inode, 0); 396 - end_writeback(inode); 396 + clear_inode(inode); 397 397 } 398 398 399 399 static inline void
+3 -3
fs/inode.c
··· 486 486 } 487 487 EXPORT_SYMBOL(__remove_inode_hash); 488 488 489 - void end_writeback(struct inode *inode) 489 + void clear_inode(struct inode *inode) 490 490 { 491 491 might_sleep(); 492 492 /* ··· 503 503 /* don't need i_lock here, no concurrent mods to i_state */ 504 504 inode->i_state = I_FREEING | I_CLEAR; 505 505 } 506 - EXPORT_SYMBOL(end_writeback); 506 + EXPORT_SYMBOL(clear_inode); 507 507 508 508 /* 509 509 * Free the inode passed in, removing it from the lists it is still connected ··· 537 537 } else { 538 538 if (inode->i_data.nrpages) 539 539 truncate_inode_pages(&inode->i_data, 0); 540 - end_writeback(inode); 540 + clear_inode(inode); 541 541 } 542 542 if (S_ISBLK(inode->i_mode) && inode->i_bdev) 543 543 bd_forget(inode);
+1 -1
fs/jffs2/fs.c
··· 240 240 jffs2_dbg(1, "%s(): ino #%lu mode %o\n", 241 241 __func__, inode->i_ino, inode->i_mode); 242 242 truncate_inode_pages(&inode->i_data, 0); 243 - end_writeback(inode); 243 + clear_inode(inode); 244 244 jffs2_do_clear_inode(c, f); 245 245 } 246 246
+1 -1
fs/jfs/inode.c
··· 169 169 } else { 170 170 truncate_inode_pages(&inode->i_data, 0); 171 171 } 172 - end_writeback(inode); 172 + clear_inode(inode); 173 173 dquot_drop(inode); 174 174 } 175 175
+1 -1
fs/logfs/readwrite.c
··· 2175 2175 } 2176 2176 } 2177 2177 truncate_inode_pages(&inode->i_data, 0); 2178 - end_writeback(inode); 2178 + clear_inode(inode); 2179 2179 2180 2180 /* Cheaper version of write_inode. All changes are concealed in 2181 2181 * aliases, which are moved back. No write to the medium happens.
+1 -1
fs/minix/inode.c
··· 32 32 minix_truncate(inode); 33 33 } 34 34 invalidate_inode_buffers(inode); 35 - end_writeback(inode); 35 + clear_inode(inode); 36 36 if (!inode->i_nlink) 37 37 minix_free_inode(inode); 38 38 }
+1 -1
fs/ncpfs/inode.c
··· 292 292 ncp_evict_inode(struct inode *inode) 293 293 { 294 294 truncate_inode_pages(&inode->i_data, 0); 295 - end_writeback(inode); 295 + clear_inode(inode); 296 296 297 297 if (S_ISDIR(inode->i_mode)) { 298 298 DDPRINTK("ncp_evict_inode: put directory %ld\n", inode->i_ino);
+2 -2
fs/nfs/inode.c
··· 121 121 void nfs_evict_inode(struct inode *inode) 122 122 { 123 123 truncate_inode_pages(&inode->i_data, 0); 124 - end_writeback(inode); 124 + clear_inode(inode); 125 125 nfs_clear_inode(inode); 126 126 } 127 127 ··· 1500 1500 void nfs4_evict_inode(struct inode *inode) 1501 1501 { 1502 1502 truncate_inode_pages(&inode->i_data, 0); 1503 - end_writeback(inode); 1503 + clear_inode(inode); 1504 1504 pnfs_return_layout(inode); 1505 1505 pnfs_destroy_layout(NFS_I(inode)); 1506 1506 /* If we are holding a delegation, return it! */
+2 -2
fs/nilfs2/inode.c
··· 734 734 if (inode->i_nlink || !ii->i_root || unlikely(is_bad_inode(inode))) { 735 735 if (inode->i_data.nrpages) 736 736 truncate_inode_pages(&inode->i_data, 0); 737 - end_writeback(inode); 737 + clear_inode(inode); 738 738 nilfs_clear_inode(inode); 739 739 return; 740 740 } ··· 746 746 /* TODO: some of the following operations may fail. */ 747 747 nilfs_truncate_bmap(ii, 0); 748 748 nilfs_mark_inode_dirty(inode); 749 - end_writeback(inode); 749 + clear_inode(inode); 750 750 751 751 ret = nilfs_ifile_delete_inode(ii->i_root->ifile, inode->i_ino); 752 752 if (!ret)
+1 -1
fs/ntfs/inode.c
··· 2258 2258 ntfs_inode *ni = NTFS_I(vi); 2259 2259 2260 2260 truncate_inode_pages(&vi->i_data, 0); 2261 - end_writeback(vi); 2261 + clear_inode(vi); 2262 2262 2263 2263 #ifdef NTFS_RW 2264 2264 if (NInoDirty(ni)) {
+1 -1
fs/ocfs2/dlmfs/dlmfs.c
··· 367 367 int status; 368 368 struct dlmfs_inode_private *ip; 369 369 370 - end_writeback(inode); 370 + clear_inode(inode); 371 371 372 372 mlog(0, "inode %lu\n", inode->i_ino); 373 373
+1 -1
fs/ocfs2/inode.c
··· 1069 1069 int status; 1070 1070 struct ocfs2_inode_info *oi = OCFS2_I(inode); 1071 1071 1072 - end_writeback(inode); 1072 + clear_inode(inode); 1073 1073 trace_ocfs2_clear_inode((unsigned long long)oi->ip_blkno, 1074 1074 inode->i_nlink); 1075 1075
+1 -1
fs/omfs/inode.c
··· 184 184 static void omfs_evict_inode(struct inode *inode) 185 185 { 186 186 truncate_inode_pages(&inode->i_data, 0); 187 - end_writeback(inode); 187 + clear_inode(inode); 188 188 189 189 if (inode->i_nlink) 190 190 return;
+1 -1
fs/proc/inode.c
··· 33 33 const struct proc_ns_operations *ns_ops; 34 34 35 35 truncate_inode_pages(&inode->i_data, 0); 36 - end_writeback(inode); 36 + clear_inode(inode); 37 37 38 38 /* Stop tracking associated processes */ 39 39 put_pid(PROC_I(inode)->pid);
+1 -1
fs/pstore/inode.c
··· 85 85 struct pstore_private *p = inode->i_private; 86 86 unsigned long flags; 87 87 88 - end_writeback(inode); 88 + clear_inode(inode); 89 89 if (p) { 90 90 spin_lock_irqsave(&allpstore_lock, flags); 91 91 list_del(&p->list);
+2 -2
fs/reiserfs/inode.c
··· 76 76 ; 77 77 } 78 78 out: 79 - end_writeback(inode); /* note this must go after the journal_end to prevent deadlock */ 79 + clear_inode(inode); /* note this must go after the journal_end to prevent deadlock */ 80 80 dquot_drop(inode); 81 81 inode->i_blocks = 0; 82 82 reiserfs_write_unlock_once(inode->i_sb, depth); 83 83 return; 84 84 85 85 no_delete: 86 - end_writeback(inode); 86 + clear_inode(inode); 87 87 dquot_drop(inode); 88 88 } 89 89
+1 -1
fs/sysfs/inode.c
··· 310 310 struct sysfs_dirent *sd = inode->i_private; 311 311 312 312 truncate_inode_pages(&inode->i_data, 0); 313 - end_writeback(inode); 313 + clear_inode(inode); 314 314 sysfs_put(sd); 315 315 } 316 316
+1 -1
fs/sysv/inode.c
··· 316 316 sysv_truncate(inode); 317 317 } 318 318 invalidate_inode_buffers(inode); 319 - end_writeback(inode); 319 + clear_inode(inode); 320 320 if (!inode->i_nlink) 321 321 sysv_free_inode(inode); 322 322 }
+1 -1
fs/ubifs/super.c
··· 378 378 smp_wmb(); 379 379 } 380 380 done: 381 - end_writeback(inode); 381 + clear_inode(inode); 382 382 } 383 383 384 384 static void ubifs_dirty_inode(struct inode *inode, int flags)
+1 -1
fs/udf/inode.c
··· 80 80 } else 81 81 truncate_inode_pages(&inode->i_data, 0); 82 82 invalidate_inode_buffers(inode); 83 - end_writeback(inode); 83 + clear_inode(inode); 84 84 if (iinfo->i_alloc_type != ICBTAG_FLAG_AD_IN_ICB && 85 85 inode->i_size != iinfo->i_lenExtents) { 86 86 udf_warn(inode->i_sb, "Inode %lu (mode %o) has inode size %llu different from extent length %llu. Filesystem need not be standards compliant.\n",
+1 -1
fs/ufs/inode.c
··· 895 895 } 896 896 897 897 invalidate_inode_buffers(inode); 898 - end_writeback(inode); 898 + clear_inode(inode); 899 899 900 900 if (want_delete) { 901 901 lock_ufs(inode->i_sb);
+1 -1
fs/xfs/xfs_super.c
··· 926 926 trace_xfs_evict_inode(ip); 927 927 928 928 truncate_inode_pages(&inode->i_data, 0); 929 - end_writeback(inode); 929 + clear_inode(inode); 930 930 XFS_STATS_INC(vn_rele); 931 931 XFS_STATS_INC(vn_remove); 932 932 XFS_STATS_DEC(vn_active);
+3 -3
include/linux/fs.h
··· 1744 1744 * I_FREEING Set when inode is about to be freed but still has dirty 1745 1745 * pages or buffers attached or the inode itself is still 1746 1746 * dirty. 1747 - * I_CLEAR Added by end_writeback(). In this state the inode is clean 1748 - * and can be destroyed. Inode keeps I_FREEING. 1747 + * I_CLEAR Added by clear_inode(). In this state the inode is 1748 + * clean and can be destroyed. Inode keeps I_FREEING. 1749 1749 * 1750 1750 * Inodes that are I_WILL_FREE, I_FREEING or I_CLEAR are 1751 1751 * prohibited for many purposes. iget() must wait for ··· 2328 2328 2329 2329 extern void __iget(struct inode * inode); 2330 2330 extern void iget_failed(struct inode *); 2331 - extern void end_writeback(struct inode *); 2331 + extern void clear_inode(struct inode *); 2332 2332 extern void __destroy_inode(struct inode *); 2333 2333 extern struct inode *new_inode_pseudo(struct super_block *sb); 2334 2334 extern struct inode *new_inode(struct super_block *sb);
+1 -1
ipc/mqueue.c
··· 249 249 int i; 250 250 struct ipc_namespace *ipc_ns; 251 251 252 - end_writeback(inode); 252 + clear_inode(inode); 253 253 254 254 if (S_ISDIR(inode->i_mode)) 255 255 return;
+1 -1
mm/shmem.c
··· 597 597 } 598 598 BUG_ON(inode->i_blocks); 599 599 shmem_free_inode(inode->i_sb); 600 - end_writeback(inode); 600 + clear_inode(inode); 601 601 } 602 602 603 603 /*