From 6f53a6a2299688b092f8183354a4cc159e3eed20 Mon Sep 17 00:00:00 2001 From: Massimo Maggi Date: Fri, 12 Oct 2012 00:55:42 +0200 Subject: [PATCH] Switch KM_SLEEP to KM_PUSHPAGE In this particular instance the allocation occurred in the context of sys_msync()->...->zpl_putpage() where we must be careful not to initiate additional I/O. Signed-off-by: Massimo Maggi Signed-off-by: Brian Behlendorf Closes #1038 --- module/zfs/zfs_rlock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/zfs/zfs_rlock.c b/module/zfs/zfs_rlock.c index 4f34b37..208de10 100644 --- a/module/zfs/zfs_rlock.c +++ b/module/zfs/zfs_rlock.c @@ -199,7 +199,7 @@ zfs_range_proxify(avl_tree_t *tree, rl_t *rl) rl->r_cnt = 0; /* create a proxy range lock */ - proxy = kmem_alloc(sizeof (rl_t), KM_SLEEP); + proxy = kmem_alloc(sizeof (rl_t), KM_PUSHPAGE); proxy->r_off = rl->r_off; proxy->r_len = rl->r_len; proxy->r_cnt = 1; @@ -228,7 +228,7 @@ zfs_range_split(avl_tree_t *tree, rl_t *rl, uint64_t off) ASSERT(rl->r_read_wanted == B_FALSE); /* create the rear proxy range lock */ - rear = kmem_alloc(sizeof (rl_t), KM_SLEEP); + rear = kmem_alloc(sizeof (rl_t), KM_PUSHPAGE); rear->r_off = off; rear->r_len = rl->r_off + rl->r_len - off; rear->r_cnt = rl->r_cnt; -- 1.8.3.1