Lines Matching refs:inode

81 struct backing_dev_info *inode_to_bdi(struct inode *inode)  in inode_to_bdi()  argument
85 if (!inode) in inode_to_bdi()
88 sb = inode->i_sb; in inode_to_bdi()
91 return blk_get_backing_dev_info(I_BDEV(inode)); in inode_to_bdi()
97 static inline struct inode *wb_inode(struct list_head *head) in wb_inode()
99 return list_entry(head, struct inode, i_wb_list); in wb_inode()
203 void inode_wb_list_del(struct inode *inode) in inode_wb_list_del() argument
205 struct backing_dev_info *bdi = inode_to_bdi(inode); in inode_wb_list_del()
208 list_del_init(&inode->i_wb_list); in inode_wb_list_del()
221 static void redirty_tail(struct inode *inode, struct bdi_writeback *wb) in redirty_tail() argument
225 struct inode *tail; in redirty_tail()
228 if (time_before(inode->dirtied_when, tail->dirtied_when)) in redirty_tail()
229 inode->dirtied_when = jiffies; in redirty_tail()
231 list_move(&inode->i_wb_list, &wb->b_dirty); in redirty_tail()
237 static void requeue_io(struct inode *inode, struct bdi_writeback *wb) in requeue_io() argument
240 list_move(&inode->i_wb_list, &wb->b_more_io); in requeue_io()
243 static void inode_sync_complete(struct inode *inode) in inode_sync_complete() argument
245 inode->i_state &= ~I_SYNC; in inode_sync_complete()
247 inode_add_lru(inode); in inode_sync_complete()
250 wake_up_bit(&inode->i_state, __I_SYNC); in inode_sync_complete()
253 static bool inode_dirtied_after(struct inode *inode, unsigned long t) in inode_dirtied_after() argument
255 bool ret = time_after(inode->dirtied_when, t); in inode_dirtied_after()
263 ret = ret && time_before_eq(inode->dirtied_when, jiffies); in inode_dirtied_after()
284 struct inode *inode; in move_expired_inodes() local
295 inode = wb_inode(delaying_queue->prev); in move_expired_inodes()
297 inode_dirtied_after(inode, *older_than_this)) in move_expired_inodes()
299 list_move(&inode->i_wb_list, &tmp); in move_expired_inodes()
302 set_bit(__I_DIRTY_TIME_EXPIRED, &inode->i_state); in move_expired_inodes()
303 if (sb_is_blkdev_sb(inode->i_sb)) in move_expired_inodes()
305 if (sb && sb != inode->i_sb) in move_expired_inodes()
307 sb = inode->i_sb; in move_expired_inodes()
320 inode = wb_inode(pos); in move_expired_inodes()
321 if (inode->i_sb == sb) in move_expired_inodes()
322 list_move(&inode->i_wb_list, dispatch_queue); in move_expired_inodes()
352 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
356 if (inode->i_sb->s_op->write_inode && !is_bad_inode(inode)) { in write_inode()
357 trace_writeback_write_inode_start(inode, wbc); in write_inode()
358 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
359 trace_writeback_write_inode(inode, wbc); in write_inode()
369 static void __inode_wait_for_writeback(struct inode *inode) in __inode_wait_for_writeback() argument
370 __releases(inode->i_lock) in __inode_wait_for_writeback()
371 __acquires(inode->i_lock) in __inode_wait_for_writeback()
373 DEFINE_WAIT_BIT(wq, &inode->i_state, __I_SYNC); in __inode_wait_for_writeback()
376 wqh = bit_waitqueue(&inode->i_state, __I_SYNC); in __inode_wait_for_writeback()
377 while (inode->i_state & I_SYNC) { in __inode_wait_for_writeback()
378 spin_unlock(&inode->i_lock); in __inode_wait_for_writeback()
381 spin_lock(&inode->i_lock); in __inode_wait_for_writeback()
388 void inode_wait_for_writeback(struct inode *inode) in inode_wait_for_writeback() argument
390 spin_lock(&inode->i_lock); in inode_wait_for_writeback()
391 __inode_wait_for_writeback(inode); in inode_wait_for_writeback()
392 spin_unlock(&inode->i_lock); in inode_wait_for_writeback()
400 static void inode_sleep_on_writeback(struct inode *inode) in inode_sleep_on_writeback() argument
401 __releases(inode->i_lock) in inode_sleep_on_writeback()
404 wait_queue_head_t *wqh = bit_waitqueue(&inode->i_state, __I_SYNC); in inode_sleep_on_writeback()
408 sleep = inode->i_state & I_SYNC; in inode_sleep_on_writeback()
409 spin_unlock(&inode->i_lock); in inode_sleep_on_writeback()
423 static void requeue_inode(struct inode *inode, struct bdi_writeback *wb, in requeue_inode() argument
426 if (inode->i_state & I_FREEING) in requeue_inode()
434 if ((inode->i_state & I_DIRTY) && in requeue_inode()
436 inode->dirtied_when = jiffies; in requeue_inode()
443 redirty_tail(inode, wb); in requeue_inode()
447 if (mapping_tagged(inode->i_mapping, PAGECACHE_TAG_DIRTY)) { in requeue_inode()
454 requeue_io(inode, wb); in requeue_inode()
463 redirty_tail(inode, wb); in requeue_inode()
465 } else if (inode->i_state & I_DIRTY) { in requeue_inode()
471 redirty_tail(inode, wb); in requeue_inode()
472 } else if (inode->i_state & I_DIRTY_TIME) { in requeue_inode()
473 inode->dirtied_when = jiffies; in requeue_inode()
474 list_move(&inode->i_wb_list, &wb->b_dirty_time); in requeue_inode()
477 list_del_init(&inode->i_wb_list); in requeue_inode()
487 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
489 struct address_space *mapping = inode->i_mapping; in __writeback_single_inode()
494 WARN_ON(!(inode->i_state & I_SYNC)); in __writeback_single_inode()
496 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
518 spin_lock(&inode->i_lock); in __writeback_single_inode()
520 dirty = inode->i_state & I_DIRTY; in __writeback_single_inode()
521 if (inode->i_state & I_DIRTY_TIME) { in __writeback_single_inode()
523 unlikely(inode->i_state & I_DIRTY_TIME_EXPIRED) || in __writeback_single_inode()
525 (inode->dirtied_time_when + in __writeback_single_inode()
528 trace_writeback_lazytime(inode); in __writeback_single_inode()
531 inode->i_state &= ~I_DIRTY_TIME_EXPIRED; in __writeback_single_inode()
532 inode->i_state &= ~dirty; in __writeback_single_inode()
548 inode->i_state |= I_DIRTY_PAGES; in __writeback_single_inode()
550 spin_unlock(&inode->i_lock); in __writeback_single_inode()
553 mark_inode_dirty_sync(inode); in __writeback_single_inode()
556 int err = write_inode(inode, wbc); in __writeback_single_inode()
560 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
573 writeback_single_inode(struct inode *inode, struct bdi_writeback *wb, in writeback_single_inode() argument
578 spin_lock(&inode->i_lock); in writeback_single_inode()
579 if (!atomic_read(&inode->i_count)) in writeback_single_inode()
580 WARN_ON(!(inode->i_state & (I_WILL_FREE|I_FREEING))); in writeback_single_inode()
582 WARN_ON(inode->i_state & I_WILL_FREE); in writeback_single_inode()
584 if (inode->i_state & I_SYNC) { in writeback_single_inode()
592 __inode_wait_for_writeback(inode); in writeback_single_inode()
594 WARN_ON(inode->i_state & I_SYNC); in writeback_single_inode()
603 if (!(inode->i_state & I_DIRTY_ALL) && in writeback_single_inode()
605 !mapping_tagged(inode->i_mapping, PAGECACHE_TAG_WRITEBACK))) in writeback_single_inode()
607 inode->i_state |= I_SYNC; in writeback_single_inode()
608 spin_unlock(&inode->i_lock); in writeback_single_inode()
610 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
613 spin_lock(&inode->i_lock); in writeback_single_inode()
618 if (!(inode->i_state & I_DIRTY_ALL)) in writeback_single_inode()
619 list_del_init(&inode->i_wb_list); in writeback_single_inode()
621 inode_sync_complete(inode); in writeback_single_inode()
623 spin_unlock(&inode->i_lock); in writeback_single_inode()
682 struct inode *inode = wb_inode(wb->b_io.prev); in writeback_sb_inodes() local
684 if (inode->i_sb != sb) { in writeback_sb_inodes()
691 redirty_tail(inode, wb); in writeback_sb_inodes()
708 spin_lock(&inode->i_lock); in writeback_sb_inodes()
709 if (inode->i_state & (I_NEW | I_FREEING | I_WILL_FREE)) { in writeback_sb_inodes()
710 spin_unlock(&inode->i_lock); in writeback_sb_inodes()
711 redirty_tail(inode, wb); in writeback_sb_inodes()
714 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
724 spin_unlock(&inode->i_lock); in writeback_sb_inodes()
725 requeue_io(inode, wb); in writeback_sb_inodes()
726 trace_writeback_sb_inodes_requeue(inode); in writeback_sb_inodes()
736 if (inode->i_state & I_SYNC) { in writeback_sb_inodes()
738 inode_sleep_on_writeback(inode); in writeback_sb_inodes()
743 inode->i_state |= I_SYNC; in writeback_sb_inodes()
744 spin_unlock(&inode->i_lock); in writeback_sb_inodes()
754 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
759 spin_lock(&inode->i_lock); in writeback_sb_inodes()
760 if (!(inode->i_state & I_DIRTY_ALL)) in writeback_sb_inodes()
762 requeue_inode(inode, wb, &wbc); in writeback_sb_inodes()
763 inode_sync_complete(inode); in writeback_sb_inodes()
764 spin_unlock(&inode->i_lock); in writeback_sb_inodes()
787 struct inode *inode = wb_inode(wb->b_io.prev); in __writeback_inodes_wb() local
788 struct super_block *sb = inode->i_sb; in __writeback_inodes_wb()
796 redirty_tail(inode, wb); in __writeback_inodes_wb()
881 struct inode *inode; in wb_writeback() local
957 inode = wb_inode(wb->b_more_io.prev); in wb_writeback()
958 spin_lock(&inode->i_lock); in wb_writeback()
961 inode_sleep_on_writeback(inode); in wb_writeback()
1202 static noinline void block_dump___mark_inode_dirty(struct inode *inode) in block_dump___mark_inode_dirty() argument
1204 if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) { in block_dump___mark_inode_dirty()
1208 dentry = d_find_alias(inode); in block_dump___mark_inode_dirty()
1215 current->comm, task_pid_nr(current), inode->i_ino, in block_dump___mark_inode_dirty()
1216 name, inode->i_sb->s_id); in block_dump___mark_inode_dirty()
1249 void __mark_inode_dirty(struct inode *inode, int flags) in __mark_inode_dirty() argument
1251 struct super_block *sb = inode->i_sb; in __mark_inode_dirty()
1255 trace_writeback_mark_inode_dirty(inode, flags); in __mark_inode_dirty()
1262 trace_writeback_dirty_inode_start(inode, flags); in __mark_inode_dirty()
1265 sb->s_op->dirty_inode(inode, flags); in __mark_inode_dirty()
1267 trace_writeback_dirty_inode(inode, flags); in __mark_inode_dirty()
1279 if (((inode->i_state & flags) == flags) || in __mark_inode_dirty()
1280 (dirtytime && (inode->i_state & I_DIRTY_INODE))) in __mark_inode_dirty()
1284 block_dump___mark_inode_dirty(inode); in __mark_inode_dirty()
1286 spin_lock(&inode->i_lock); in __mark_inode_dirty()
1287 if (dirtytime && (inode->i_state & I_DIRTY_INODE)) in __mark_inode_dirty()
1289 if ((inode->i_state & flags) != flags) { in __mark_inode_dirty()
1290 const int was_dirty = inode->i_state & I_DIRTY; in __mark_inode_dirty()
1293 inode->i_state &= ~I_DIRTY_TIME; in __mark_inode_dirty()
1294 inode->i_state |= flags; in __mark_inode_dirty()
1301 if (inode->i_state & I_SYNC) in __mark_inode_dirty()
1308 if (!S_ISBLK(inode->i_mode)) { in __mark_inode_dirty()
1309 if (inode_unhashed(inode)) in __mark_inode_dirty()
1312 if (inode->i_state & I_FREEING) in __mark_inode_dirty()
1321 bdi = inode_to_bdi(inode); in __mark_inode_dirty()
1323 spin_unlock(&inode->i_lock); in __mark_inode_dirty()
1339 inode->dirtied_when = jiffies; in __mark_inode_dirty()
1341 inode->dirtied_time_when = jiffies; in __mark_inode_dirty()
1342 if (inode->i_state & (I_DIRTY_INODE | I_DIRTY_PAGES)) in __mark_inode_dirty()
1343 list_move(&inode->i_wb_list, &bdi->wb.b_dirty); in __mark_inode_dirty()
1345 list_move(&inode->i_wb_list, in __mark_inode_dirty()
1348 trace_writeback_dirty_inode_enqueue(inode); in __mark_inode_dirty()
1356 spin_unlock(&inode->i_lock); in __mark_inode_dirty()
1363 struct inode *inode, *old_inode = NULL; in wait_sb_inodes() local
1380 list_for_each_entry(inode, &sb->s_inodes, i_sb_list) { in wait_sb_inodes()
1381 struct address_space *mapping = inode->i_mapping; in wait_sb_inodes()
1383 spin_lock(&inode->i_lock); in wait_sb_inodes()
1384 if ((inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) || in wait_sb_inodes()
1386 spin_unlock(&inode->i_lock); in wait_sb_inodes()
1389 __iget(inode); in wait_sb_inodes()
1390 spin_unlock(&inode->i_lock); in wait_sb_inodes()
1402 old_inode = inode; in wait_sb_inodes()
1542 int write_inode_now(struct inode *inode, int sync) in write_inode_now() argument
1544 struct bdi_writeback *wb = &inode_to_bdi(inode)->wb; in write_inode_now()
1552 if (!mapping_cap_writeback_dirty(inode->i_mapping)) in write_inode_now()
1556 return writeback_single_inode(inode, wb, &wbc); in write_inode_now()
1571 int sync_inode(struct inode *inode, struct writeback_control *wbc) in sync_inode() argument
1573 return writeback_single_inode(inode, &inode_to_bdi(inode)->wb, wbc); in sync_inode()
1586 int sync_inode_metadata(struct inode *inode, int wait) in sync_inode_metadata() argument
1593 return sync_inode(inode, &wbc); in sync_inode_metadata()