diff options
-rw-r--r-- | fs/fs-writeback.c | 12 | ||||
-rw-r--r-- | include/linux/writeback.h | 1 |
2 files changed, 2 insertions, 11 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index d0ff0b8cf309..d99601af9e48 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -421,9 +421,6 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) | |||
421 | * If we're a pdlfush thread, then implement pdflush collision avoidance | 421 | * If we're a pdlfush thread, then implement pdflush collision avoidance |
422 | * against the entire list. | 422 | * against the entire list. |
423 | * | 423 | * |
424 | * WB_SYNC_HOLD is a hack for sys_sync(): reattach the inode to sb->s_dirty so | ||
425 | * that it can be located for waiting on in __writeback_single_inode(). | ||
426 | * | ||
427 | * If `bdi' is non-zero then we're being asked to writeback a specific queue. | 424 | * If `bdi' is non-zero then we're being asked to writeback a specific queue. |
428 | * This function assumes that the blockdev superblock's inodes are backed by | 425 | * This function assumes that the blockdev superblock's inodes are backed by |
429 | * a variety of queues, so all inodes are searched. For other superblocks, | 426 | * a variety of queues, so all inodes are searched. For other superblocks, |
@@ -499,10 +496,6 @@ void generic_sync_sb_inodes(struct super_block *sb, | |||
499 | __iget(inode); | 496 | __iget(inode); |
500 | pages_skipped = wbc->pages_skipped; | 497 | pages_skipped = wbc->pages_skipped; |
501 | __writeback_single_inode(inode, wbc); | 498 | __writeback_single_inode(inode, wbc); |
502 | if (wbc->sync_mode == WB_SYNC_HOLD) { | ||
503 | inode->dirtied_when = jiffies; | ||
504 | list_move(&inode->i_list, &sb->s_dirty); | ||
505 | } | ||
506 | if (current_is_pdflush()) | 499 | if (current_is_pdflush()) |
507 | writeback_release(bdi); | 500 | writeback_release(bdi); |
508 | if (wbc->pages_skipped != pages_skipped) { | 501 | if (wbc->pages_skipped != pages_skipped) { |
@@ -588,8 +581,7 @@ restart: | |||
588 | 581 | ||
589 | /* | 582 | /* |
590 | * writeback and wait upon the filesystem's dirty inodes. The caller will | 583 | * writeback and wait upon the filesystem's dirty inodes. The caller will |
591 | * do this in two passes - one to write, and one to wait. WB_SYNC_HOLD is | 584 | * do this in two passes - one to write, and one to wait. |
592 | * used to park the written inodes on sb->s_dirty for the wait pass. | ||
593 | * | 585 | * |
594 | * A finite limit is set on the number of pages which will be written. | 586 | * A finite limit is set on the number of pages which will be written. |
595 | * To prevent infinite livelock of sys_sync(). | 587 | * To prevent infinite livelock of sys_sync(). |
@@ -600,7 +592,7 @@ restart: | |||
600 | void sync_inodes_sb(struct super_block *sb, int wait) | 592 | void sync_inodes_sb(struct super_block *sb, int wait) |
601 | { | 593 | { |
602 | struct writeback_control wbc = { | 594 | struct writeback_control wbc = { |
603 | .sync_mode = wait ? WB_SYNC_ALL : WB_SYNC_HOLD, | 595 | .sync_mode = wait ? WB_SYNC_ALL : WB_SYNC_NONE, |
604 | .range_start = 0, | 596 | .range_start = 0, |
605 | .range_end = LLONG_MAX, | 597 | .range_end = LLONG_MAX, |
606 | }; | 598 | }; |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index bb28c975c1d7..7300ecdc480c 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -30,7 +30,6 @@ static inline int task_is_pdflush(struct task_struct *task) | |||
30 | enum writeback_sync_modes { | 30 | enum writeback_sync_modes { |
31 | WB_SYNC_NONE, /* Don't wait on anything */ | 31 | WB_SYNC_NONE, /* Don't wait on anything */ |
32 | WB_SYNC_ALL, /* Wait on every mapping */ | 32 | WB_SYNC_ALL, /* Wait on every mapping */ |
33 | WB_SYNC_HOLD, /* Hold the inode on sb_dirty for sys_sync() */ | ||
34 | }; | 33 | }; |
35 | 34 | ||
36 | /* | 35 | /* |