Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 166339
b: refs/heads/master
c: cf13730
h: refs/heads/master
i:
  166337: fc42e19
  166335: 4323e55
v: v3
  • Loading branch information
Jens Axboe committed Sep 25, 2009
1 parent b28705d commit d0913aa
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5c03449d34debca0deab58046377e1175c1bcd7e
refs/heads/master: cf137307cd9827495b65e7d74ea2b610daa9898b
12 changes: 11 additions & 1 deletion trunk/fs/fs-writeback.c
Original file line number Diff line number Diff line change
Expand Up @@ -336,17 +336,27 @@ static void move_expired_inodes(struct list_head *delaying_queue,
{
LIST_HEAD(tmp);
struct list_head *pos, *node;
struct super_block *sb;
struct super_block *sb = NULL;
struct inode *inode;
int do_sb_sort = 0;

while (!list_empty(delaying_queue)) {
inode = list_entry(delaying_queue->prev, struct inode, i_list);
if (older_than_this &&
inode_dirtied_after(inode, *older_than_this))
break;
if (sb && sb != inode->i_sb)
do_sb_sort = 1;
sb = inode->i_sb;
list_move(&inode->i_list, &tmp);
}

/* just one sb in list, splice to dispatch_queue and we're done */
if (!do_sb_sort) {
list_splice(&tmp, dispatch_queue);
return;
}

/* Move inodes from one superblock together */
while (!list_empty(&tmp)) {
inode = list_entry(tmp.prev, struct inode, i_list);
Expand Down

0 comments on commit d0913aa

Please sign in to comment.