Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
fs
/
btrfs
/
delayed-inode.c
diff --git
a/kernel/fs/btrfs/delayed-inode.c
b/kernel/fs/btrfs/delayed-inode.c
index
02b934d
..
09fa5af
100644
(file)
--- a/
kernel/fs/btrfs/delayed-inode.c
+++ b/
kernel/fs/btrfs/delayed-inode.c
@@
-1375,7
+1375,8
@@
release_path:
total_done++;
btrfs_release_prepared_delayed_node(delayed_node);
total_done++;
btrfs_release_prepared_delayed_node(delayed_node);
- if (async_work->nr == 0 || total_done < async_work->nr)
+ if ((async_work->nr == 0 && total_done < BTRFS_DELAYED_WRITEBACK) ||
+ total_done < async_work->nr)
goto again;
free_path:
goto again;
free_path:
@@
-1391,7
+1392,8
@@
static int btrfs_wq_run_delayed_node(struct btrfs_delayed_root *delayed_root,
{
struct btrfs_async_delayed_work *async_work;
{
struct btrfs_async_delayed_work *async_work;
- if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND)
+ if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND ||
+ btrfs_workqueue_normal_congested(fs_info->delayed_workers))
return 0;
async_work = kmalloc(sizeof(*async_work), GFP_NOFS);
return 0;
async_work = kmalloc(sizeof(*async_work), GFP_NOFS);